JDBC API memungkinkan pengguna untuk mengakses segala bentuk data tabel, terutama data yang disimpan dalam database hubungan.
Proses eksekusi:
• Sambungkan sumber data, seperti: database.
• Permintaan lulus basis data dan perbarui instruksi.
• Hasil respons dan pengembalian database.
Arsitektur JDBC
Dibagi menjadi arsitektur pelapis ganda dan arsitektur tiga -layer.
Double -layer
Fungsi: Dalam arsitektur ini, applet java atau aplikasi secara langsung mengakses sumber data.
Kondisi: Driver diperlukan untuk berinteraksi dengan database yang dapat diakses.
Mekanisme: Perintah pengguna diteruskan ke database atau sumber data lainnya, dan hasilnya dikembalikan.
Penyebaran: Sumber data dapat dihubungkan melalui jaringan pada mesin lain, yang disebut konfigurasi C/S (dapat berupa jaringan internal atau internet).
Tiga -layer
Fitur khusus dari arsitektur samping adalah bahwa layanan perantara diperkenalkan.
Proses: Perintah dan struktur akan melewati lapisan ini.
Ketertarikan: Ini dapat meningkatkan kontrol akses data perusahaan dan pembaruan berbagai jenis;
Tren Historis: Di masa lalu, karena masalah kinerja, lapisan tengah ditulis dalam C atau C ++. Java mulai digunakan di tengah untuk perantara pengembangan lapisan juga telah membuat keuntungan dari sorotan Java.
Langkah Pemrograman JDBC
Muat driver:
Class.forname (driverclass) // muat driver mysql class.forname ("com.mysql.jdbc. Driver") // muat oracle drive class.forname ("oracle.jdbc.oracledriver" Cure
Dapatkan koneksi database:
Salin kode kode sebagai berikut:
DriverManager.getConnection ("jdbc: mysql: //127.0.0.1: 3306/imooc", "root", "root");
Buat Objek Pernyataan/Persiapan:
Salin kode kode sebagai berikut:
Conn.createStatement ();
const.preparestatement (SQL);
Contoh lengkap
Impor Java.sql.connection; "; Public static final string user =" liulx "; public static final string password =" 123456 "; public static void main (string [] args) melempar pengecualian { / / / / 1. Muat class.forname driver (" com .mysql .jdbc.driver "); // 2. Dapatkan koneksi koneksi database conn = driverManager.getConnection (url, pengguna, kata sandi); // 3. Operasi database untuk mencapai tambahan, penghapusan, periksa pernyataan stmt = conn .CreateStateMet (); .println (rs.getstringstring ("user_name")+"usia:"+rs.getint ("usia");}}}
Tambahan, penghapusan dan perubahan
Public Class DBUTIL {public static final string url = "jdbc: mysql: // localhost: 3306/imooc"; driver class.forname ("com.mysql.jdbc.driver"); // 2. Dapatkan koneksi basis data conn = driverManager.getConnection (url, pengguna, kata sandi);} CH (CH (ClassNotFoundException E) {E.PrintStackRace ( );} Catch (SQLException e) {E.PrintStackTrace ();}} Public Static Connection () {) Turn Conn;} // Model Paket Liulx.model; Integer ID; Metode Getter Setter. Esensi Esensi } // --------- dao 层 -------------- Paket liulx.dao; import liulx.db.dbutil; import liulx.model.goddess; import java. SQL.Connection; AddGoddess (Goddess G) melempar SQLEXCEPTION {// dapatkan koneksi koneksi conn = dbutil.getConnection (); " +" Values (" +"?,?,?,?,?,?,?, Current_date (), ?, current_date (),?) "; Persiapan (sql); // pra -kompilasi sql ke untuk Kurangi SQL Eksekusi // Menyerahkan PTMT.SetString (1, G.GetUser_name ()); ; ); = dbutil.getConnection (); // sql, setiap baris menambahkan sql kosong = "perbarui imoc_godess" + "Setel kami er_name = ?, sex = ?, usia = ?, ulang tahun =?, email =?, seluler =?," +"Update_user =?, Update_date = current_date (), isDel =?"+"Di mana id =?" .GetUser_name ()); (8, G.Getisdel ()); ); Daftar Publik <Goddess> query () melempar {connection conn = dbutil.getConnection (); ); .add (g);} return gs;} Dewi publik get () {Goddess G = NULL; Conn.PrepareStatement (SQL); .SetId (rs.getint ("id"); g.setuser_name (rs.getString ("user_name"); g.setage (rs.getint ("usia")); seetsex (rs.getint ("sex"); g.setBirthday (rs.getDate ("ulang tahun"); g.setemail (rs.getString ("email"); g.setMobile (rs. getstring ("seluler"); g.setCreate_date (rs.getDate ("create_date" ); }}