Saya percaya semua orang akrab dengan JDBC. Selama Anda adalah orang Java, Anda harus belajar hal seperti itu ketika Anda pertama kali bersentuhan dengan J2EE. Siapa bilang program harus berurusan dengan database? JDBC adalah pengetahuan yang sangat mendasar untuk menangani basis data, dan juga relatif dekat dengan tingkat yang mendasarinya. Dalam pekerjaan yang sebenarnya, orang menggunakan kerangka kerja yang lebih matang, seperti Hibernate dan Mybatis.
Namun, sebagai JDBC yang mendasari dari kerangka kerja matang ini, kita juga harus menguasainya. Hanya dengan memahami penambahan, penghapusan, modifikasi, dan kueri JDBC, kita dapat lebih memahami bagaimana kerangka kerja matang ini menerapkan penambahan, penghapusan, modifikasi, dan permintaan ketika mereka tertarik untuk mempelajari kode sumber Hibernate atau Mybatis di masa depan.
Kembali ke topik, mari kita lihat lingkungan pengembangan kita:
Bahasa Java, Alat Pengembangan Eclipse, Database MySQL, Alat Visualisasi Basis Data Navicat.
Silakan periksa sendiri informasi untuk instalasi, konstruksi, dan penggunaan lingkungan pengembangan (sangat sederhana), dan tidak akan dijelaskan secara rinci di sini.
Langkah pertama adalah membuat database, menggunakan alat visualisasi Navicat Database untuk membuat database, membuat tabel dalam database, memberikan beberapa bidang dalam tabel (ingat untuk memberikan bidang ID, kunci utama yang unik, urutan self-increment), dan kemudian memberikan dua bagian data sesuka untuk menguji fungsi, seperti yang ditunjukkan pada gambar:
Langkah kedua adalah membuka database (saya harap semua orang dapat mengetuk contoh ini sendiri, yang tidak akan memakan banyak waktu. Berbahap dengan bagaimana JDBC berurusan dengan database, jadi saya akan menunjukkannya pada gambar). Seperti yang ditunjukkan pada gambar:
Langkah ketiga adalah mengubah kelas DBUTIL untuk memfasilitasi akuisisi koneksi database di lapisan DAO. Kodenya adalah sebagai berikut:
Paket com.czgo.db; impor java.sql.connection; impor java.sql.driverManager; import java.sql.sqlexception; kelas publik dbutil {private static final string url = "jdbc: mysql: //127.0.1: 3306/3306/jdbc: mysql: //127.0.1: 3306/3306/3306/3306/ string final statis pribadi uname = "root"; string final statis pribadi pwd = "root"; Koneksi statis pribadi Conn = null; static {coba {// 1. Muat driver class.forname ("com.mysql.jdbc.driver"); // 2. Dapatkan koneksi ke database conn = driverManager.getConnection (url, uname, pwd); } catch (ClassNotFoundException e) {E.PrintStackTrace (); } catch (sqlexception e) {e.printstacktrace (); }} public static Connection getConnection () {return conn; }} Langkah 4: Buat kelas entitas (seperti yang ditunjukkan pada gambar di atas, semua orang mengamati alokasi paket. Kami akan menggunakan ide MVC untuk merancang contoh ini. Ada ide -ide desain tentang MVC, silakan pelajari sendiri, saya tidak akan mengatakan banyak di sini) Kode ini sebagai berikut:
Paket com.czgo.model; impor java.io.serializable;/** * Kelas entitas: Kelas Dewi * * @Author Alanlee * */Kelas publik Goddess mengimplementasikan serializable {private static final long serialversionuid = 1L; / *** Kunci utama yang unik*/ ID integer pribadi; / *** Nama*/ nama string privat; / *** Nomor Ponsel*/ Private String Mobie; / *** Email*/ email string pribadi; / *** Alamat Beranda*/ Alamat String Pribadi; Integer publik getId () {return id; } public void setid (integer id) {this.id = id; } public string getName () {return name; } public void setName (name string) {this.name = name; } public String getMobie () {return mobie; } public void setMobie (String mobie) {this.mobie = mobie; } public String geteMail () {return email; } public void seteMail (string email) {this.email = email; } public String getAddress () {alamat kembali; } public void setAddress (Alamat String) {this.address = alamat; }} Langkah 5, Implementasi lapisan DAO (di sini, karena ini adalah contoh kecil, tidak ada antarmuka penulisan untuk proyek besar dalam pekerjaan aktual, yang nyaman untuk pemeliharaan dan ekspansi program). Kodenya adalah sebagai berikut:
Paket com.czgo.dao; impor java.sql.connection; impor java.sql.preparedstatement; impor java.sql.resultset; impor java.sql.sqlexception; impor java.util.arraylist; impor java.util.list; com.czgo.model.Goddess;/** * Data layer processing class* * @author AlanLee * */public class GoddessDao{ /** * Query all goddesses* * @return * @throws SQLException */ public List<Goddess> query() throws SQLException { List<Goddess> goddessList = new ArrayList <Wewdess> (); // Dapatkan koneksi koneksi database conn = dbutil.getConnection (); StringBuilder SB = StringBuilder baru (); SB.Append ("Pilih ID, Nama, Mobie, Email, Alamat dari Goddess"); // Operasi database melalui koneksi database untuk mewujudkan penambahan, penghapusan, modifikasi dan pencarian disiapkan ptmt = conn.preparestateMent (sb.tostring ()); Hasil rs = ptmt.executeQuery (); Dewi Dewi = NULL; while (rs.next ()) {goddess = new Goddess (); goddess.setid (rs.getint ("id")); goddess.setname (rs.getString ("name")); goddess.setmobie (rs.getString ("mobie")); goddess.setemail (rs.getString ("email")); goddess.setAddress (rs.getString ("alamat")); goddess.setAddress (rs.getString ("alamat")); goddesslist.add (dewi); } return goddesslist; } / ** * Kueri Dewi tunggal * * @return * @throws Sqlexception * / Public Goddess QueryById (Integer ID) melempar SQlexception {Goddess G = null; Koneksi conn = dbutil.getConnection (); String sql = "" + "SELECT * dari imooc_goddess" + "di mana id =?"; PTMT Persiapan Persiapan = Conn.PrepareStatement (SQL); ptmt.setint (1, id); Hasil rs = ptmt.executeQuery (); while (rs.next ()) {g = Goddess baru (); g.setid (rs.getint ("id")); g.setname (rs.getString ("name")); g.setMobie (rs.getString ("mobie")); g.setemail (rs.getString ("email")); g.setAddress (rs.getString ("alamat")); } return g; } / ** * Tambahkan Goddess * * @Throws SQlexception * / public void addgoddess (dewi dewi) melempar SQLException {// Dapatkan koneksi koneksi database Conn = dbutil.getConnection (); String sql = "masukkan ke dalam Goddess (nama, mobie, email, alamat) nilai (?, ?, ?,?)"; PTMT Persiapan Persiapan = Conn.PrepareStatement (SQL); ptmt.setstring (1, goddess.getname ()); ptmt.setstring (2, goddess.getMobie ()); ptmt.setstring (3, goddess.getemail ()); ptmt.setstring (4, goddess.getAddress ()); ptmt.execute (); } / ** * Modifikasi informasi dewi * * @throws Sqlexception * / public void updateGoddess (dewi dewi) melempar sqlexception {connection conn = dbutil.getConnection (); String sql = "Perbarui nama dewi nama =?, Mobie =?, Email =?, Alamat =? Di mana id =?"; PTMT Persiapan Persiapan = Conn.PrepareStatement (SQL); ptmt.setstring (1, goddess.getname ()); ptmt.setstring (2, goddess.getMobie ()); ptmt.setstring (3, goddess.getemail ()); ptmt.setstring (4, goddess.getAddress ()); ptmt.execute (); } / ** * Hapus dewi * * @throws Sqlexception * / public void deleteGodDess (Integer ID) melempar SQLEXCECETION {Connection conn = dbutil.getConnection (); String sql = "hapus dari dewi di mana id =?"; PTMT Persiapan Persiapan = Conn.PrepareStatement (SQL); ptmt.setint (1, id); ptmt.execute (); }} Langkah 6: Implementasi lapisan kontrol (lapisan kontrol digunakan untuk meniru lapisan kontrol dan antarmuka di sini, dan secara langsung membangun data di sini. Jika itu adalah data antarmuka, Anda dapat lulus parameter penerima melalui permintaan. Anda dapat mengubah dan meningkatkan kode lapisan kontrol sesuai dengan situasi yang sebenarnya. Berikut ini adalah tes sederhana untuk Anda, dan waktu yang ketat, saya berharap. Kodenya adalah sebagai berikut:
Paket com.czgo.action; impor java.sql.sqlexception; import java.util.list; import com.czgo.dao.goddessdao; import com.czgo.model.goddess;/*** Lapisan kontrol, langsung membangun data di sini, dan data antarmuka dapat diterima melalui permintaan. Hal yang sama berlaku * * @author Alanlee * */Kelas Publik Goddessaction {/** * Ditambahkan Dewi * * @param Goddess * @throws Exception */public void add (dewi dewi) melempar pengecualian {goddessdao dao = goddessdao baru (); goddess.setname ("aoi sora"); goddess.setMobie ("52220000"); goddess.setemail ("[email protected]"); Goddess.setAddress ("Beijing Red Light District"); dao.addgoddess (dewi); } / ** * Permintaan tunggal dewi * * @param id * @return * @throws sqlexception * / dewi publik get (integer id) melempar sqlexception {goddessdao dao = goddessdao baru (); return dao.querybyid (id); } / ** * Modifikasi dewi * * @param goddess * @throws Exception * / public void Edit (dewi dewi) melempar pengecualian {goddessdao dao = goddessdao baru (); dao.updategoddess (dewi); } / ** * Hapus dewi * * @param id * @throws sqlexception * / public void del (integer id) melempar sqlexception {goddessdao dao = goddessdao baru (); dao.deletegoddess (id); } / ** * Permintaan semua dewi * * @return * @throws Exception * / Daftar Publik <Hewdess> query () melempar Exception {goddessdao dao = Goddessdao baru (); return dao.query (); } / ** * Uji apakah itu berhasil * * @param args * @throws sqlexception * / public static void main (string [] args) melempar sqlexception {goddessdao goddessdao = goddessdao baru (); Daftar <Wewdess> goddesslist = goddessdao.query (); untuk (dewi dewi: goddesslist) {System.out.println (goddess.getname () + "," + goddess.getMobie () + "," + goddess.getemail ()); }}} Akhirnya, mari kita lihat apakah metode utama berjalan dengan sukses:
Dengan cara ini, koneksi Java JDBC sederhana ke database MySQL diselesaikan untuk menambah, menghapus, memodifikasi, dan meminta. Anda dapat mencoba melakukan kueri lanjutan berdasarkan kueri, yaitu, permintaan multi-kondisi untuk mengkonsolidasikan penggunaan JDBC.
Di atas adalah semua konten artikel ini. Saya harap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.