Hari ini saya belajar cara menambah, menghapus, memodifikasi, dan memeriksa database melalui Hibernate. Izinkan saya memperkenalkannya secara singkat:
Pertama -tama buat kelas siswa:
Paket com.hibernate.model; impor javax.persistence.column; impor javax.persistence.entity; impor javax.persistence.generatedValue; impor javax.persistence. Birthplace; @id @GeneratedValue @Column (name = "_id") public int getId () {return id;} public void setid (int id) {this.id = id;}@column (name = "_name") public getName () {return name;} public void setName (string name) {"name () {name () @name; name@name;@name; getage () {return use;} public void setage (int usia) {this.age = usia;}@column (name = "_birthplace") public string getBirthPlace () {return born place;} public void setBirthPlace (string kelahiran) {this.birthplace = kelahiran;} public} Kemudian buat Teachertest dari Type Junit Test Case:
Mari kita bicara tentang metode session.save () terlebih dahulu, yaitu, tambahkan:
Paket com.hibernate.model; impor org.hibernate.query; impor org.hibernate.Session; impor org.hibernate.SessionFactory; impor org.hibernate.cfg.annotationConfiguration; impor org.junit.afterclass; impor org.junit.beforeclass; Sessionfactory sf = null; @beforeclass public static void beForeClass () {try {sf = new annotationConfiguration (). Configure (). BuildSessionFactory (); //@{{{{{{{{{{{{{{{{{{{{{{E) yang terkadang muncul di sini). public void testSave () {// Tingkatkan guru t = guru baru (); t.setage (23); t.setname ("moluo"); t.setbirthplace ("huangshan"); session sesi = sf.getCurrentsession (); session.begintransaction (); session.save (tt); get. afterclass () {sf.close ();}}Hasil Cerah:
Mari kita bicara tentang metode session.delete (), yaitu, hapus:
@Test public void testDelete () {// hapus guru t = guru baru (); t.setid (2); session session = sf.getCurrentsession (); session.begintransaction (); session.delete (t); session.gettransaction (). Commit ();};Hasil Cerah:
Kemudian, buka session.get (), yaitu, periksa:
@Test public void testget () {// dapatkan sesi sesi = sf.getCurrentSession (); session.begintransaction (); Guru t = (guru) session.get (guru.class, 1); System.out.println ("Nama:"+t.getName ()); session.getTransaction (). Commit (); }Hasil Cerah:
Hibernate: Pilih Teacher0 _._ ID sebagai kolom1_1_0_, Teacher0 _._ Usia sebagai kolom2_1_0_, guru _._ tempat lahir sebagai kolom3_1_0_, guru _._ Nama sebagai kolom4_1_0_ dari _teacher Teacher0_ di mana guru _._ id =? Nama adalah: Moluo
Mari kita ambil metode kueri lain: session.load ():
@Test public void testLoad () {// muat sesi sesi = sf.getCurrentSession (); session.begintransaction (); Guru t = (guru) session.load (guru.class, 1); System.out.println ("Nama:"+t.getName ()); session.getTransaction (). Commit (); }Hasil Cerah:
Hibernate: Pilih Teacher0 _._ ID sebagai kolom1_1_0_, Teacher0 _._ Usia sebagai kolom2_1_0_, guru _._ tempat lahir sebagai kolom3_1_0_, guru _._ Nama sebagai kolom4_1_0_ dari _teacher Teacher0_ di mana guru _._ id =? Nama adalah: Moluo
Di sini kami menjelaskan perbedaan antara dua pertanyaan ini: Pertama -tama, ketika objek yang akan menjadi kueri tidak ada, informasi yang dikembalikan berbeda. Get Method Will Return: java.lang.nullpointerException
Metode pemuatan akan kembali: org.hibernate.ObjectNotFoundException: norowwiththegivenIdentifierexists
Kedua, beban mengembalikan objek proxy, dan pernyataan SQL akan dikeluarkan ketika benar -benar digunakan; Selain itu, dapatkan data beban langsung dari database, tanpa penundaan.
Akhirnya, mari kita bicara tentang metode pembaruan yang paling umum digunakan, dan perbarui melalui pernyataan HQL:
@Test public void testupDate () {// Perbarui sesi sesi = sf.getCurrentSession (); session.begintransaction (); String url = "Perbarui guru t set t.birthplace = 'anhui' di mana id = 1"; // Perhatikan bahwa guru di sini harus nama objek, bukan nama tabel, t adalah alias dari kueri objek q = session.createquery (url); // paket yang diimpor di sini adalah: impor org.hibernate.query; Q.ExecuteUpdate (); session.getTransaction (). Commit (); }Hasil Cerah:
Melalui pembaruan, kota kelahiran Moro telah diperbarui dari Huangshan ke Anhui ...
Bahkan, ada metode pembaruan session.update (), tetapi metode pembaruan ini hanyalah metode pembaruan ini. Jika Anda hanya memperbarui bagian kolom sekaligus, metode pembaruan ini akan memperbarui semua kolom, yang tidak terlalu efisien, sehingga tidak disarankan untuk menggunakannya. Tentu saja, ada juga cara untuk menebus mereka. Misalnya, jika Anda menggunakan XML, Anda dapat mengatur pembaruan = "false" di tag properti kolom yang Anda tidak ingin diperbarui dalam file konfigurasi; Selain itu, Anda juga dapat mengatur pembaruan dinamis setelah kelas file konfigurasi: Dynamic-upDate = "true"; Tentu saja, jika Anda menggunakan anotasi, Anda dapat mengatur @column (update = "false"); Bahkan, ini tidak fleksibel, dan menggunakan HQL adalah yang terbaik, jadi hanya kode pembaruan HQL yang diposting di sini.
Meringkaskan
Di atas adalah semua konten dari artikel ini tentang analisis contoh Hibernate dalam menambahkan, menghapus, memodifikasi, dan mencari operasi melalui sesi. Saya harap ini akan membantu semua orang. Teman yang tertarik dapat merujuk ke situs ini:
Pelajari dengan cepat tentang sesi di Hibernate
Hibernate Attribute Level Annotation Contoh Kode
Hibernate menggunakan HBM.XML untuk mengonfigurasi analisis hubungan pemetaan
Jika ada kekurangan, silakan tinggalkan pesan untuk menunjukkannya. Terima kasih teman atas dukungan Anda untuk situs ini!