Kueri basis data
Gunakan metode createStatement dari objek Connection untuk membuat objek Pernyataan, gunakan metode mengeksekusiQuery() dari objek Pernyataan untuk mengeksekusi pernyataan kueri SQL dan mengembalikan kumpulan hasil, lalu membaca data dari kumpulan hasil menggunakan metode seperti dapatkanXXX(). Setelah serangkaian langkah tersebut, kueri ke database dapat direalisasikan.
[Contoh] Aplikasi Java mengakses database. Aplikasi membuka tabel informasi kandidat ksInfo dan mengambil berbagai informasi tentang kandidat. Asumsikan struktur database informasi kandidat adalah sebagai berikut:
import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.util.*;import java.sql.*;public class Contoh10_9 extends JFrame mengimplementasikan ActionListener{ public static Connection connectByJdbcodbc( String url, String nama pengguna, String kata sandi){ Koneksi con = null; Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //Muat driver ODBC} catch (Pengecualian e){ e.printStackTrace(); return null; .getConnection(url, nama pengguna, kata sandi); } catch (SQLException e){ e.printStackTrace(); kembalikan null; //Koneksi gagal} kembali con; String title[] ={"Nomor ujian", "Nama", "Nilai", "Alamat", "Lanjutkan"}; JTextField txtNo = new JTextField(8); JTextField(3); JTextField txtAddr = JTextField baru(30); JTextArea txtresume = JTextArea baru(); JButton sebelumnya = JButton baru("sebelumnya"); JButton berikutnya = JButton baru("JButton pertama = JButton baru("JButton terakhir = JButton baru ("terakhir"); ); Pernyataan sql; //objek pernyataan SQL ResultSet rs; //Penyimpanan hasil kueri objectExample10_9(Koneksi terhubung){ super("Jendela tampilan informasi kandidat"); setSize(450, 350); coba{ sql = connect.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY); ("PILIH * DARI ksInfo"); Kontainer con = getContentPane(); con.setLayout(new BorderLayout(0, 6); JPanel p[] = new JPanel[4]; for (int i = 0; i < 4; i++){ p[ i] = JPane baru(FlowLayout baru(FlowLayout.LEFT, 8, 0)); JLabel(judul[i])); } p[0].add(txtNo); p[1].add(txtNama); p[2].add(txtScore); JPanel p1 = JPane baru(GridLayout94 baru, 1, 0, 8)); JScrollPane jsp = baru JScrollPane(txtResume, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); jsp.setPreforredSize(Dimensi baru(300, 60); for (int i = 0; i < 4; i++){ p1.add(p[i]); } JPanel p2 = baru JPanel(new FlowLayout(FlowLayout.LEFT, 10, 0); p2.add(new JLabel(title[4])); p2.add(jsp); Jpanel p3 = new Jpanel(); p3.add(prev); p3.tambahkan(berikutnya); p3.tambahkan(pertama); p3.tambahkan(terakhir); next.addActionListener(ini); first.addActionListener(ini); terakhir.addActionlistener(ini); rs.first(); readRecord(); } public void modifikasiRecord(Koneksi terhubung){ String stuNo = (String)JOptionPane.showInputDialog(null, "Silakan masukkan nomor ujian kandidat", "Masukkan kotak dialog nomor ujian", JOptionPane.PLAIN_MESSAGE, null, null, ""); coba { sql = connect.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY); .executeQuery ("PILIH * DARI ksInfo"); Kontainer con = getContentPane(); con.setLayout(boarderlayout baru(0, 6)); Jpanel p[] = JPanel baru[4]; untuk (int i = 0; i < ; i++){ p[i] = JPane baru(baru FlowLayout(flowLayout.LEFT, 8, 0)); p[i].add(JLabel baru(judul[i]) } p[0].add(txtNo); p[1].add(txtNama); p[2].add(txtScore); p[3].add(txtAddr); , 1, 0, 8)); JScrollPane jsp = JScrollPane baru(txtResume, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); jsp.setPreferredSize (dimensi baru(300, 60)); untuk (int i = 0; i < 4; i++){ p1.add(p[i]); JPanel baru (baru FlowLayout(FlowLayout.LEFT, 10, 0)); p2.add(JLableI baru(judul[4])); p2.add(jsp); JPanel p3 = JPanel baru(); tambahkan(berikutnya); p3.tambahkan(pertama); p3.tambahkan(terakhir); next.addActionListener(ini); first.addActionListenerIthis); terakhir.addActionListener(ini); rs.first(); readRecord(); tangkapan (Pengecualian e){ e.printStackTrace(); readRecord(){ coba{ txtNo.setText(rs.getString("Nomor Ujian")); txtName.setText(rs.getString("nama")); txtScore.setText(rs.getString("score")); txtAddr.setText(rs.getString("alamat")); "Lanjutkan")); } catch (SQLException e){ e.printStackTrace(); kembali salah; benar; } public void actionPerformed(ActionEvent e){ coba{ if (e.getSource() == sebelumnya)rs.previous(); else if (e.getSource() == next)rs.next(); (e.getSource() == pertama)rs.first(); else if (e.getSource() == terakhir)rs.last(); readRecord(); static void main(String args[]){ koneksi koneksi = null; setDefaultLookAndFeeDecorated(true); Font font = new Font("JFrame", Font.PLAIN, 14); :redsun", "xia", "1234")) == null){ JOptionPane.showMessageDialog(null, "Koneksi database gagal!"); System.exit ( - } new Contoh10_9(sambungkan);
Pembaruan Basis Data Java <br />Operasi pembaruan basis data mencakup pembuatan tabel data, penghapusan, dan penambahan, penghapusan, dan modifikasi catatan tabel data. Jika diimplementasikan menggunakan perintah data SQL, gunakan metode mengeksekusiUpdate() dari pasangan Pernyataan untuk menjalankan pernyataan pembaruan SQL untuk mengubah tabel data; jalankan pernyataan penyisipan SQL untuk menambahkan catatan tabel data.
Misalnya, berdasarkan contoh kueri data sebelumnya, tambahkan modifikasi dan penyisipan pada tabel data. Karena keterbatasan ruang, program lengkap tidak akan diberikan, hanya metode pelaksanaan modifikasi dan penyisipan saja. Program ini dapat menambahkan tombol sisipkan,,, dan simpan. Melalui penelusuran yang ada, temukan posisi tertentu dari tabel data, edit, ubah, sisipkan, atau hapus catatan carbuncle, lalu tekan tombol simpan untuk menyelesaikan tabel data yang dimodifikasi. . menyimpan.
Kode berikut menjelaskan cara memperbarui tabel data. Saat menghubungkan ke tabel data, Anda perlu menentukan bahwa objek ResultSet yang diperoleh dapat diperbarui.
stmt = connect.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);