Letakkan diagram transisi tiga negara di sini untuk memfasilitasi fungsi metode analisis:
1.Sesi Simpan () Metode
Sesi adalah antarmuka yang paling penting di antara semua antarmuka hibernasi, menyediakan metode untuk menyimpan, memperbarui, meminta dan menghapus data.
Metode save () sesi dapat mengonversi keadaan sementara atau bebas menjadi negara yang persisten. Misalnya, simpan objek pelanggan:
Sessionfactory sessionFactory; konfigurasi konfigurasi = konfigurasi baru (). Configure (); sessionFactory = configuration.buildsessionFactory (); session session = sessionFactory.opensession (); transaksi tr = session.begintransaction (); // 1. Buat Objek Pelanggan Pelanggan C1 = Pelanggan Baru (); C1.SetID (baru Long (1)); c1.setname ("test"); c1.setemail ("[email protected]"); c1.setpassword ("123456"); C1.SetAddress ("Paradise");/// 2. Hubungi metode save () sesi untuk bertahan dari sesi objek pelanggan.Metode save () terutama melakukan tiga hal berikut:
(1) Masukkan objek pelanggan sementara yang dibuat oleh baru ke dalam cache untuk membuatnya bertahan.
(2) Pada saat yang sama, menurut Generator OID yang diatur dalam file pemetaan hubungan objek, yaitu, metode pembuatan kunci utama menghasilkan OID unik untuk objek.
<!-Atur tombol utama-> <idname = "id" column = "id" type = "long"> <!-Metode pembuatan kunci utama-> <generatorClass = "increment"/> </d>
Ada pertanyaan di tempat ini. Saat membuat objek, apakah metode setid () menghasilkan kunci utama untuk kegigihan objek. Faktanya, tidak. SetID tidak menghasilkan kunci utama seperti yang kami atur, tetapi menghasilkan kunci utama berdasarkan metode pembuatan kunci utama yang dikonfigurasi dalam file pemetaan hubungan objek. Ini dapat dijalankan beberapa kali lebih, dan kunci utama tumbuh dengan sendirinya. Anda dapat melihat beberapa bagian data dari database. Kunci utama dimulai dari 1, sehingga Anda dapat mengetahui setid itu ()
Kunci utama tidak diatur, jika tidak, verifikasi keunikan kunci utama database tidak akan dimungkinkan.
Kami juga dapat mengatur nilai kunci utama secara manual. Kita harus membebani metode save (), menggunakan metode overload simpan (C1, newlong (1)), dan mengaturnya secara manual setiap kali.
(3) Rencanakan untuk menjalankan pernyataan insert. Perhatikan bahwa pernyataan insert tidak segera dieksekusi, dan pernyataan insert hanya akan dieksekusi ketika sesi membersihkan cache. TR.Commit () Transaction Commit.
Metode 2.Session's Update ()
Ubah objek negara bebas menjadi objek yang persisten. Misalnya:
Sessionfactory sessionfactory; Konfigurasi konfigurasi = konfigurasi baru (). Configure (); sessionFactory = configuration.buildsessionFactory (); Session session1 = sessionfactory.opensession (); Transaksi tr1 = session1.begintransaction (); // 1. Buat Objek Pelanggan Pelanggan C1 = Pelanggan Baru (); C1.SetID (baru Long (1)); c1.setname ("tes"); c1.setemail ("[email protected]"); C1.SetPassword ("123456"); C1.SetAddress ("Paradise"); // 2. SESI SESSIF () METODE UNTUK SELAMAT SESI Objek Pelanggan1.Save (C1); tr1.commit (); session1.close (); // 3. Perbarui objek negara bebas, temukan perubahan, dan jalankan Sesi Perbarui sesi Sesi2 = sessionFactory.opensession (); Transaksi tr2 = session2.begintransaction (); c1.setAddress ("Update Tes"); session2.update (C1); tr2.commit (); session2.close ();Sesi pembaruan () harus melakukan hal berikut:
(1) Tambahkan objek pelanggan gratis ke cache sesi untuk menjadi objek yang persisten.
(2) Jalankan pernyataan pembaruan. Sama seperti Saving () mengeksekusi pernyataan insert, tidak segera menjalankan pernyataan pembaruan. Ketika cache dibersihkan, objek pelanggan dirakit menjadi pernyataan pembaruan.
Lalu jalankan lagi.
Perhatikan bahwa bahkan jika pelanggan tidak berubah, secara default, pernyataan pembaruan akan dikumpulkan ketika cache dihapus. Jika perlu diatur untuk berubah, file pemetaan hubungan objek perlu ditetapkan.
3.Session saveorupdate () metode
Metode saveorupdate () berisi fungsi metode save () dan update (), dan metode yang berbeda disebut sesuai dengan keadaan parameter yang diteruskan. Lewat di objek sementara untuk memanggil metode save (), jika meneruskan objek gratis untuk memanggilnya
update () metode. Mengembalikan objek persisten yang masuk. Oleh karena itu, setiap kali kita hanya perlu masuk dalam metode objek, saveorupdate (), secara otomatis menilai keadaan status objek yang dilewati, dan secara dinamis memanggil metode pemrosesan.
Bagaimana metode ini menentukan keadaan objek yang masuk? Ketika salah satu dari kondisi berikut dipenuhi, itu adalah keadaan sementara:
(1) OID objek Java adalah nol, yang berarti bahwa objek tidak dipakai sebaliknya. Bahkan jika itu dipakai, itu adalah objek yang telah dihapus dan menjadi keadaan sementara setelah keadaan bebas dihapus. Dalam hal ini, objeknya adalah keadaan sementara.
(2) Jika objek Java memiliki kontrol versi dan nomor versi nol, itu berarti tidak ada nomor versi objek.
(3) Kustomisasi interseptor, hubungi isunsaved () dan kembalikan nilainya benar.
4. Metode Sesi Load () dan Get ()
Kedua metode didasarkan pada OID, memuat objek persisten dari database. Objek persisten ditempatkan dalam cache sesi, dan objek persisten dapat dioperasikan sesuai dengan kebutuhan yang berbeda.
Perbedaan antara keduanya:
Ketika tidak ada catatan yang sesuai di OID dalam database, muat () melempar pengecualian dan get () mengembalikan nol.
5. metode delete () sesi
delete () sesuai namanya digunakan untuk menghapus catatan yang sesuai dengan objek Java dari database.
delete () Jika objek persisten dilewatkan, kumpulkan pernyataan hapus dan jalankan delete; Jika objek negara bebas dilewati, Hibernate pertama mengaitkan keadaan bebas ke sesi, menjadi keadaan yang persisten, dan kemudian menghasilkan pernyataan DELETE.
Melakukan penghapusan.
Semua dieksekusi hanya ketika cache sesi dihapus.
Eksekusi di atas adalah semua objek, sesuai dengan catatan.
Anda dapat menggunakan session.delete ("Fromcustomerwhere ..."); Untuk menghapus banyak data setelah menambahkan kondisi.
Sessionfactory sessionfactory; Konfigurasi konfigurasi = konfigurasi baru (). Configure (); sessionFactory = configuration.buildsessionFactory (); Session session1 = sessionfactory.opensession (); Transaksi tr1 = session1.begintransaction (); // 1. Buat Objek Pelanggan Pelanggan C1 = Pelanggan Baru (); C1.SetID (baru Long (1)); c1.setname ("tes"); c1.setemail ("[email protected]"); C1.SetPassword ("123456"); C1.SetAddress ("Paradise"); // 2. Hubungi metode save () sesi untuk bertahan dari sesi objek pelanggan1.save (C1); tr1.commit (); session1.close (); // 3. Mengaitkan objek status bebas ke sesi, menghapus cache setelah kegigihan, dan menjalankan pernyataan DELETE; Masukkan ke dalam keadaan gigih untuk menghapusnya secara langsung; Session session2 = sessionfactory.opensession (); Transaksi tr2 = session2.begintransaction (); session2.delete (C1); tr2.commit (); session2.close (); Hasil eksekusi, output konsol:
Hibernate: Pilih Max (ID) dari Pelanggan
Hibernate: Masukkan ke dalam pelanggan (nama, email, kata sandi, telepon, alamat, seks, is_married, deskripsi, gambar, ulang tahun, terdaftar_time, id) nilai (?,?,?,?,?,?,?,?,?,?,?,?,?
Hibernate: hapus dari pelanggan di mana id =?
Meringkaskan
Di atas adalah semua penjelasan terperinci dari Sesi Tambah, Penghapusan, Modifikasi dan Kode Operasi Pencarian di Hibernate, saya harap ini akan membantu semua orang. Teman yang tertarik dapat terus merujuk ke topik terkait lainnya di situs ini. Jika ada kekurangan, silakan tinggalkan pesan untuk menunjukkannya. Terima kasih teman atas dukungan Anda untuk situs ini!