Setelah koneksi diperoleh, kita dapat berinteraksi dengan database. Metode dan properti yang didefinisikan dalam pernyataan JDBC, CallAblestatement, dan Persiapan Antarmuka memungkinkan pengiriman perintah SQL atau PL/SQL dan menerima data dari database.
Mereka juga mendefinisikan metode yang membantu mengonversi perbedaan data antara Java dan database menggunakan tipe data SQL.
Tabel berikut memberikan gambaran tentang bagaimana setiap antarmuka digunakan untuk memahami antarmuka mana yang akan digunakan
Objek Pernyataan:
Buat Objek Pernyataan
Ketika Anda dapat menggunakan objek pernyataan untuk menjalankan pernyataan SQL, Anda perlu menggunakan metode createStatement () dari objek koneksi untuk membuat satu, seperti yang ditunjukkan dalam contoh berikut:
Pernyataan stmt = null; coba {stmt = conn.createStatement (); . . .} catch (sqlexception e) {. . .} Akhirnya { . . .}Setelah objek pernyataan dibuat, kemudian dapat digunakan untuk menjalankan pernyataan SQL dengan salah satu dari tiga metode eksekusi.
Boolean Execute (String SQL): Mengembalikan nilai boolean true jika objek hasil dapat diambil, jika tidak mengembalikan false. Gunakan metode ini untuk menjalankan pernyataan SQL DDL, atau saat menggunakan SQL dinamis nyata.
int executeUpdate (String SQL): Mengembalikan jumlah baris yang dijalankan oleh pernyataan SQL yang terpengaruh. Gunakan metode ini untuk dieksekusi, dan berharap untuk mendapatkan beberapa baris yang terpengaruh dari pernyataan SQL - misalnya, memasukkan, memperbarui, atau menghapus pernyataan.
Hasil ExecuteQuery (String SQL): Mengembalikan Objek Hasil. Gunakan metode ini saat Anda ingin mendapatkan set hasil, seperti menggunakan pernyataan SELECT.
Tutup objek pernyataan:
Sama seperti menutup objek koneksi untuk memegang sumber daya basis data, objek pernyataan harus ditutup karena alasan yang sama.
Metode panggilan sederhana ke tutup () akan melakukan pekerjaan itu. Jika objek koneksi ditutup terlebih dahulu, itu akan menutup objek pernyataan juga. Namun, objek pernyataan harus selalu ditutup secara eksplisit untuk memastikan izin yang tepat.
Pernyataan stmt = null; coba {stmt = conn.createStatement (); . . .} catch (sqlexception e) {. . .} akhirnya {stmt.close ();}
Objek Persiapan
Antarmuka yang disiapkan memperluas antarmuka pernyataan, memungkinkan beberapa fitur canggih ditambahkan ke objek pernyataan umum.
Pernyataan memberikan fleksibilitas untuk parameter dinamis.
Buat Objek Persiapan:
Persiapan PSTMT = null; coba {string sql = "Perbarui karyawan set usia =? Di mana id =?"; PSTMT = Conn.PrepareStatement (SQL); . . .} catch (sqlexception e) {. . .} Akhirnya { . . .}Semua parameter dalam JDBC diwakili? Simbol, yang merupakan penanda parameter yang diketahui. Sebelum menjalankan pernyataan SQL, setiap parameter nilai harus disediakan.
Metode setxxx () mengikat nilai ke parameter, di mana xxx mewakili tipe data Java yang ingin Anda ikat ke nilai parameter input. Jika Anda lupa memberikan nilainya, Anda akan menerima sqlexception.
Setiap tag parameter dirujuk oleh posisi nomor urutannya. Tanda pertama menunjukkan posisi 1, posisi berikutnya adalah 2, dan seterusnya. Metode ini berbeda dari pengindeksan array java, dimulai dengan 0.
Semua metode objek pernyataan untuk berinteraksi dengan database (a) execute (), (b) executeQuery (), dan (c) executeUpdate () juga berfungsi dengan objek yang disiapkan. Namun, metode ini dimodifikasi untuk menggunakan pernyataan SQL, yang dapat memanfaatkan parameter input.
Tutup objek yang disiapkan:
Sama seperti menutup objek pernyataan, untuk alasan yang sama, objek yang disiapkan juga harus ditutup.
Metode panggilan sederhana ke tutup () akan melakukan pekerjaan itu. Jika objek koneksi ditutup, itu pertama -tama akan menutup objek yang disiapkan. Namun, objek yang disiapkan harus selalu ditutup secara eksplisit untuk memastikan izin yang benar.
Persiapan PSTMT = null; coba {string sql = "Perbarui karyawan set usia =? Di mana id =?"; PSTMT = Conn.PrepareStatement (SQL); . . .} catch (sqlexception e) {. . .} akhirnya {pstmt.close ();} Contoh Persiapan
Berikut adalah contoh dari memanfaatkan ini dan menyalakan statmen dan mematikan:
Salin contoh berikut jdbcexample.java, kompilasi dan jalankan seperti yang ditunjukkan di bawah ini:
// Langkah 1. Impor Paket yang Diperlukan IMPORT JAVA.SQL.*; Kelas Publik JdbCexample {// Nama Driver JDBC dan Database URL Static Final String JDBC_DRIVER = "com.mysql.jdbc.driver"; string final statis db_url = "jdbc: mysql: // localhost/emp"; // kredensial basis data static final string user = "username"; Static Final String Pass = "Kata Sandi"; public static void main (string [] args) {connection conn = null; STMTSTATEMENT STMT = NULL; Coba {// Langkah 2: Daftarkan JDBC Driver Class.forname ("com.mysql.jdbc.driver"); // Langkah 3: Buka koneksi System.out.println ("Menghubungkan ke Database ..."); conn = driverManager.getConnection (db_url, user, pass); // Langkah 4: Jalankan kueri System.out.println ("Membuat Pernyataan ..."); String sql = "Perbarui karyawan set usia =? Di mana id =?"; stmt = conn.preparestatement (sql); // mengikat nilai ke dalam parameter. stmt.setint (1, 35); // Ini akan menetapkan usia stmt.setint (2, 102); // Ini akan mengatur ID // Biarkan kami memperbarui usia catatan dengan ID = 102; int rows = stmt.executeUpdate (); System.out.println ("Baris terpengaruh:" + baris); // Biarkan kami memilih semua catatan dan menampilkannya. SQL = "Pilih ID, Pertama, Terakhir, Usia dari Karyawan"; Hasil rs = stmt.executeQuery (sql); // Langkah 5: Ekstrak data dari set hasil while (rs.next ()) {// ambil dengan nama kolom int id = rs.getint ("id"); int usia = rs.getint ("usia"); String first = rs.getString ("first"); String last = rs.getString ("last"); // tampilan nilai system.out.print ("id:" + id); System.out.print (", usia:" + usia); System.out.print (", pertama:" + pertama); System.out.println (", terakhir:" + terakhir); } // Langkah 6: Lingkungan Pembersihan Rs.Close (); stmt.close (); conn.close (); } catch (sqlexception se) {// menangani kesalahan untuk jdbc se.printstacktrace (); } catch (Exception e) {// menangani kesalahan untuk class.forname e.printstacktrace (); } akhirnya {// akhirnya blok yang digunakan untuk menutup sumber daya coba {if (stmt! = null) stmt.close (); } catch (sqlexception se2) {} // tidak ada yang bisa kita coba {if (conn! = null) conn.close (); } catch (sqlexception se) {se.printstacktrace (); } // end akhirnya coba} // end try system.out.println ("Selamat tinggal!"); } // end Main} // end jdbcexampleSekarang mari kita menyusun contoh di atas sebagai berikut:
C:> javac jdbcexample.java
Saat menjalankan JDBCexample, itu menghasilkan hasil berikut:
C:> java jdbcexample
Menghubungkan ke Database ... Membuat Pernyataan ... Baris Dampak: 1id: 100, Umur: 18, Pertama: Zara, Terakhir: Aliid: 101, Umur: 25, Pertama: Mahnaz, Terakhir: Fatmaid: 102, Umur: 35, Pertama: Zaid, Terakhir: Khanid: 103, Usia: 30, Pertama: Sumit, Last: Mittalgoodby!