Nol, tentang hibernate
Hibernate berarti hibernasi, yang mengacu pada hibernasi hewan, tetapi hibernasi yang dibahas dalam artikel ini tidak ada hubungannya dengan hibernasi, tetapi merupakan anggota kerangka kerja SSH2 yang akan dibahas selanjutnya. Hibernate adalah proyek open source. Ini adalah kerangka kerja model objek-relasional dan memiliki enkapsulasi JDBC yang sangat ringan. Pemrogram dapat menggunakan pemikiran pemrograman objek untuk berkembang selama pengembangan.
Alamat unduhan: http://hibernate.org/orm/downloads/
Catatan: Perbedaan antara ringan dan berat kelas berat. Paket kerangka kerja ringan lebih kecil dan mudah digunakan, dan mudah diuji dan memiliki efisiensi pengembangan yang tinggi. Paket kerangka kerja kelas berat lebih besar, dan proses bisnis kemasan internal lebih rumit dan sulit diuji, seperti struts.
Model Relasional Objek:
Hibernate mengimplementasikan pemetaan model objek-relasional. Saat pemrograman, programmer dapat secara langsung menggunakan model objek untuk mengoperasikan database. Ringan merangkum JDBC dan juga merangkum pernyataan SQL untuk operasi basis data, yang mudah digunakan. Meskipun memiliki banyak keuntungan, akan sulit untuk menyetel menggunakan pernyataan dengan karakteristik basis data, seperti prosedur yang tersimpan, dll.
Pro dan kontra Hibernate:
(1) Keuntungan
A. Meningkatkan produktivitas;
B. membuat pengembangan lebih objektif (ketidakcocokan impedansi);
C. Portabilitas;
D. Tidak ada invasif dan mendukung transparansi dan kegigihan.
(2) Kerugian
A. Pernyataan yang menggunakan karakteristik basis data akan sulit disesuaikan;
B. Ada masalah dengan pembaruan data skala besar;
C. Ada sejumlah besar fungsi kueri statistik dalam sistem.
2. Contoh Hibernate
Artikel di atas memberikan beberapa interpretasi awal Hibernate. Dengan teori, pasti ada lebih banyak praktik. Anda tidak memahami kenyamanannya tanpa menggunakan Hibernate. Ini seperti orang yang suka minum Moutai rasanya untuk pertama kalinya. Hanya setelah menggunakannya, Anda dapat memahaminya lebih dalam.
Contoh berikut menggunakan database MySQL. Basis data bernama Hibernate_first dibuat di MySQL. Tabel pengguna dibuat melalui file pemetaan hibernate menggunakan metode pemrograman objek dan menambahkan informasi ke tabel pengguna.
Langkah -langkah spesifik:
(1) membuat aplikasi Java normal;
(2) Tambahkan paket jar hibernate. Saat menambahkan paket JAR, Anda perlu memperkenalkan Hibernate.jar, paket JAR pihak ketiga yang dirujuk oleh Hibernate, dan paket JAR yang terhubung ke Hibernate dan MySQL.
(3) Tambahkan file konfigurasi konfigurasi koneksi basis data hibernate.cfg.xml.
<? Xml Version = "1.0" Encoding = "UTF-8"?> <! Doctype Hibernate-Configuration Public "-// Hibernate/Hibernate Configuration Dtd 3.0 // en" "http://hibernate.sourceForge.net/hibernate-configuration-. name = "hibernate.connection.driver_class"> com.mysql.jdbc.driver </property> <property name = "hibernate.connection.url"> jdbc: mysql: // property localhost. name = "hibernate.connection.password"> ab12 </propt> <!-dialek: dialek, dialek, API yang mendasari yang dienkapsulasi, mirip dengan runtime, mengubah database menjadi bahasa yang sesuai dalam konfigurasi-> <name properti = "hibernate.dialect"> org.hibernate.dialect.mysqysqysqys. <nama properti = "hibernate.show_sql"> true </property> <properti name = "hibernate.format_sql"> true </port> <pemetaan sumber daya = "com/hibernate/user.hbm.xml"/> </sion-factory> </hibernate-configuration>
(4) Buat nama kelas entitas sebagai user.java
paket com.hibernate; impor java.util.date; pengguna kelas publik {private string ID; string publik getId () {return id; } public void setId (string id) {this.id = id; } public string getName () {return name; } public void setName (name string) {this.name = name; } public string getPassword () {return kata sandi; } public void setPassword (kata sandi string) {this.password = kata sandi; } tanggal publik getCreateTime () {return createTime; } public void setCreateTime (date createTime) {this.createTime = createTime; } Tanggal publik getExpiretime () {return expiretime; } public void setExpiretime (tanggal kedaluwarsa) {this.expiretime = extreTime; } nama string pribadi; kata sandi string pribadi; createTime tanggal pribadi; Tanggal Privat Kedaluwarsa; } (5) Buat pemetaan file user.hbm.xml dari kelas entitas pengguna, lengkapi pemetaan kelas entitas, dan tambahkan file ke file hibernate.cfg.xml.
<? Xml Version = "1.0"?> <! Doctype Hibernate-Mapping Public "-// Hibernate/Hibernate Mapping DTD 3.0 // EN" "http://hibernate.sourceForge.net/hibernate-mapping-3.3.3.dtd"> <! <Hibernate-Mapping> <class name = "com.hibernate.user"> <id name = "id"> <generator/> </d> <name properti = "name"/> <properti nama = "kata sandi"/> <name properti = "createTime"/> <name properti = "extreetime"/</class> </hibernate-papping>
(6) Tulis ExportDB.java dan ubah file pemetaan menjadi DDL yang sesuai.
paket com.hibernate; impor org.hibernate.cfg.configuration; impor org.hibernate.tool.hbm2ddl.schemaExport; Public Class ExportDB {public static void main (string [] args) {// pertama -tama mendeklarasikan untuk mendapatkan file konfigurasi // default baca hibernate.cfg.xml konfigurasi file cfg = konfigurasi baru (). configure (); // Ekspor File Baca XML ke DDL SchemaExport Export = New SchemaExport (CFG); Export.create (Benar, Benar); }} Jalankan kelas ExportDB untuk menyelesaikan pembuatan tabel database. Tampilan setelah melihat operasi spesifik dalam CMD adalah sebagai berikut:
Contoh di atas hanya melengkapi operasi penghubung ke database dan membuat tabel dalam database. Setelah membuat tabel, Anda perlu menambahkan data ke tabel, membuat klien kelas klien, dan menambahkan informasi pengguna baru ke tabel pengguna. Kode spesifiknya adalah sebagai berikut:
paket com.hibernate; impor java.util.date; impor org.hibernate.Session; impor org.hibernate.SessionFactory; impor org.hibernate.cfg.configuration; klien kelas publik {public static void main (string [] args) {// baca hibernate.cfg.xml konfigurasi file cfg = konfigurasi baru (). configure (); // Buat sessionfactory, yang setara dengan cermin basis data. Karena sessionfactory adalah cermin, yang terbaik adalah membuatnya sekali/biasanya aman. SessionFactory factory = cfg.buildsessionFactory (); // sesi sesi yang diambil = null; coba {session = factory.opensession (); // buka transaksi session.begintransaction (); Pengguna pengguna = pengguna baru (); user.setname ("Zhang San"); user.setPassword ("123"); user.setCreateTime (tanggal baru ()); // simpan session objek pengguna.save (pengguna); // komit transaksi session.getTransaction (). Commit (); } catch (exception e) {e.printstacktrace (); // cetak pesan kesalahan // rollback transaction session.getTransaction (). rollback (); } akhirnya {if (session! = null) {if (session.isopen ()) {// tutup session session.close (); }}}}}}}}} Lihat informasi tambahan di MySQL seperti yang ditunjukkan pada gambar berikut:
Informasi dari operasi di atas telah ditulis ke database. Setelah menyimpan data dalam database, baris yang sesuai dihasilkan dalam database. Namun, itu belum diselamatkan. Sebaliknya, ada baris data yang sesuai dalam database. Data diserahkan ke database setelah pengiriman transaksi menggunakan sesi selesai.