JavaRush /Blog Java /Random-MS /Soalan Temuduga Hibernate
Dr-JohnZoidberg
Tahap
Киев

Soalan Temuduga Hibernate

Diterbitkan dalam kumpulan
Artikel ini adalah terjemahan dan penambahbaikan artikel asing (senarai sumber disenaraikan di penghujung artikel). Jawapan kepada beberapa soalan diperluaskan, pautan ke sumber pihak ketiga disediakan yang mengandungi jawapan yang mungkin timbul semasa proses membaca. 1) Apakah itu Hibernate? Ia adalah rangka kerja untuk pemetaan objek-hubungan entiti ke dalam pangkalan data hubungan tradisional. Ciri-ciri utama rangka kerja: 1) Penjanaan automatik dan pengemaskinian jadual dalam pangkalan data; 2) Memandangkan pertanyaan utama kepada pangkalan data (menyimpan, mengemas kini, memadam dan mencari) dibentangkan sebagai kaedah rangka kerja, kod yang ditulis oleh pembangun dikurangkan dengan ketara; 3) Menyediakan penggunaan bahasa seperti SQL (HQL - bahasa pertanyaan hibernate). Pertanyaan HQL boleh ditulis bersama objek data (kelas POJO disediakan untuk bekerja dengan pangkalan data). 2) Cara Hibernatemembantu dengan pengaturcaraan? Hibernate melaksanakan beberapa ciri yang sangat memudahkan kerja pembangun. — Salah satu ciri ini ialah hibernate membolehkan pembangun mengelak daripada menulis kebanyakan pertanyaan SQL (ia telah dilaksanakan, anda hanya perlu menggunakan kaedah yang disediakan oleh rangka kerja). — Di bawah hud, Hibernate mempunyai sekumpulan alat berguna yang mempercepatkan aplikasi dengan ketara, yang paling ketara ialah caching dua peringkat dan penalaan halus dan pengeluaran penarikan. — Menghasilkan jadual ke dalam pangkalan data itu sendiri. 3) Kaedah untuk mengkonfigurasi kerja dengan Hibernate. Terdapat empat cara untuk mengkonfigurasi kerja dengan Hibernate: - menggunakan anotasi; - hibernate.cfg.xml; - hibernate.properties; - persistence.xml. Kaedah konfigurasi yang paling biasa: melalui anotasi dan fail persistence.xml, bagi fail hibernate.properties dan hibernate.cfg.xml, maka hibernate.cfg.xml adalah lebih penting (jika aplikasi mempunyai kedua-dua fail, maka tetapan daripada fail hibernate.cfg diterima. xml). Konfigurasi dengan anotasi, walaupun mudah, tidak selalu boleh dilakukan; contohnya, jika anda ingin mempunyai konfigurasi entiti yang berbeza untuk pangkalan data yang berbeza atau untuk situasi yang berbeza, maka anda harus menggunakan fail konfigurasi xml. 4) Apakah antara muka utama yang digunakan oleh Hibernate? Terdapat lima antara muka utama yang digunakan dalam setiap aplikasi berkaitan Hibernate: - Antara muka sesi; - Antara muka SessionFactory; — Antara muka konfigurasi; — Antara muka transaksi; — Antara muka pertanyaan dan Kriteria. 5) Apakah peranan antara muka Sesi dalam Hibernate? Sesi ialah antara muka utama yang bertanggungjawab untuk berkomunikasi dengan pangkalan data. Ia juga membantu mencipta objek permintaan untuk mendapatkan objek berterusan. (objek berterusan - objek yang sudah ada dalam pangkalan data; objek permintaan - objek yang diperoleh apabila kami menerima hasil pertanyaan dalam pangkalan data, dengan ini aplikasi berfungsi). Objek Sesi boleh diperolehi daripada SessionFactory: Session session = sessionFactory.openSession(); Peranan antara muka Sesi: ialah pembalut untuk sambungan jdbc ke pangkalan data; (https://ru.wikipedia.org/wiki/Java_Database_Connectiv..) - adalah kilang untuk urus niaga (mengikut transaksi dokumentasi rasmi - membenarkan aplikasi untuk mentakrifkan unit kerja, yang, pada dasarnya, bermakna transaksi itu mentakrifkan sempadan operasi yang berkaitan dengan pangkalan data). — ialah penjaga cache peringkat pertama wajib. 6) Apakah peranan antara muka SessionFactory dalam Hibernate? Ia adalah daripada objek SessionFactory yang kita memperoleh objek jenis Sesi. Terdapat hanya satu SessionFactory untuk keseluruhan aplikasi dan ia dimulakan apabila aplikasi bermula. SessionFactory menyimpan meta-data dan pertanyaan SQL yang kerap digunakan oleh aplikasi semasa operasi. Ia juga menyimpan maklumat yang diterima dalam salah satu transaksi dan boleh digunakan dalam transaksi lain. Objek SessionFactory boleh diperoleh menggunakan panggilan berikut: SessionFactory sessionFactory = configuration.buildSessionFactory(); 7) Apakah jenis koleksi yang disediakan dalam Hibernate? Beg, Set, Senarai, Peta, Tatasusunan. 8) Apakah koleksi jenis Beg dan mengapa ia digunakan? Dalam pelaksanaannya, jenis koleksi Beg sangat serupa dengan Set, bezanya Beg boleh menyimpan nilai pendua. Beg menyimpan senarai elemen yang tidak diindeks. Kebanyakan jadual dalam pangkalan data mempunyai indeks yang memaparkan kedudukan elemen data berbanding satu sama lain; indeks ini diwakili dalam jadual sebagai lajur yang berasingan. Dengan pemetaan hubungan objek, nilai lajur indeks dipetakan kepada indeks dalam Tatasusunan, indeks dalam Senarai atau kunci dalam Peta. Jika anda perlu mendapatkan koleksi objek yang tidak mengandungi data indeks, maka anda boleh menggunakan koleksi jenis Beg atau Set (koleksi mengandungi data dalam bentuk yang tidak diisih, tetapi boleh diisih mengikut permintaan). 9) Apakah perbezaan dalam pengendalian kaedah load(); dan dapat();? kaedah load(); biasanya digunakan apabila anda tidak pasti bahawa objek yang diminta sudah ada dalam pangkalan data. Jika objek tidak dijumpai, maka kaedah membuang pengecualian. Jika objek ditemui, kaedah mengembalikan objek proksi, iaitu pautan ke objek yang terletak dalam pangkalan data (permintaan pangkalan data belum dibuat, sejenis dari lazy retrieval), permintaan terus ke pangkalan data apabila kami Kami terus mengakses objek yang diperlukan melalui objek proksi. get() kaedah; digunakan kemudian, anda tidak pasti 100 peratus sama ada objek yang diminta berada dalam pangkalan data. Dalam kes mengakses objek yang tidak wujud, kaedah get(); akan kembali null. Jika objek ditemui, kaedah get(); akan mengembalikan objek itu sendiri dan pertanyaan pangkalan data akan dibuat serta-merta. 10) Apakah Lazy fetching dalam Hibernate? Jenis daftar keluar Lazy dalam Hibernate dikaitkan dengan entiti daun (anak) dan mentakrifkan dasar daftar keluar bersama jika terdapat permintaan untuk menyemak entiti induk. Contoh mudah: Terdapat entiti House. Ia menyimpan maklumat tentang nombor, jalan, bilangan pangsapuri dan maklumat tentang keluarga yang tinggal di pangsapuri; keluarga ini membentuk entiti kanak-kanak berbanding entiti Dewan. Apabila kami meminta maklumat tentang Rumah, mungkin tidak perlu sama sekali untuk kami mengetahui maklumat tentang keluarga yang tinggal di dalamnya, di sini pengambilan malas membantu kami, yang membolehkan kami mengkonfigurasi entiti Dewan supaya maklumat tentang keluarga disediakan sahaja atas permintaan, ini adalah awan penting permintaan dan mempercepatkan permohonan. ©dev-bay Kebanyakan jadual dalam pangkalan data mempunyai indeks yang memaparkan kedudukan elemen data berbanding satu sama lain; indeks ini diwakili dalam jadual sebagai lajur yang berasingan. Dengan pemetaan hubungan objek, nilai lajur indeks dipetakan kepada indeks dalam Tatasusunan, indeks dalam Senarai atau kunci dalam Peta. Jika anda perlu mendapatkan koleksi objek yang tidak mengandungi data indeks, maka anda boleh menggunakan koleksi jenis Beg atau Set (koleksi mengandungi data dalam bentuk yang tidak diisih, tetapi boleh diisih mengikut permintaan). 9) Apakah perbezaan dalam pengendalian kaedah load(); dan dapat();? kaedah load(); biasanya digunakan apabila anda tidak pasti bahawa objek yang diminta sudah ada dalam pangkalan data. Jika objek tidak dijumpai, maka kaedah membuang pengecualian. Jika objek ditemui, kaedah mengembalikan objek proksi, iaitu pautan ke objek yang terletak dalam pangkalan data (permintaan pangkalan data belum dibuat, sejenis dari lazy retrieval), permintaan terus ke pangkalan data apabila kami Kami terus mengakses objek yang diperlukan melalui objek proksi. get() kaedah; digunakan kemudian, anda tidak pasti 100 peratus sama ada objek yang diminta berada dalam pangkalan data. Dalam kes mengakses objek yang tidak wujud, kaedah get(); akan kembali null. Jika objek ditemui, kaedah get(); akan mengembalikan objek itu sendiri dan pertanyaan pangkalan data akan dibuat serta-merta. 10) Apakah Lazy fetching dalam Hibernate? Jenis daftar keluar Lazy dalam Hibernate dikaitkan dengan entiti daun (anak) dan mentakrifkan dasar daftar keluar bersama jika terdapat permintaan untuk menyemak entiti induk. Contoh mudah: Terdapat entiti House. Ia menyimpan maklumat tentang nombor, jalan, bilangan pangsapuri dan maklumat tentang keluarga yang tinggal di pangsapuri; keluarga ini membentuk entiti kanak-kanak berbanding entiti Dewan. Apabila kami meminta maklumat tentang Rumah, mungkin tidak perlu sama sekali untuk kami mengetahui maklumat tentang keluarga yang tinggal di dalamnya, di sini pengambilan malas membantu kami, yang membolehkan kami mengkonfigurasi entiti Dewan supaya maklumat tentang keluarga disediakan sahaja atas permintaan, ini adalah awan penting permintaan dan mempercepatkan permohonan. ©dev-bay Kebanyakan jadual dalam pangkalan data mempunyai indeks yang memaparkan kedudukan elemen data berbanding satu sama lain; indeks ini diwakili dalam jadual sebagai lajur yang berasingan. Dengan pemetaan hubungan objek, nilai lajur indeks dipetakan kepada indeks dalam Tatasusunan, indeks dalam Senarai atau kunci dalam Peta. Jika anda perlu mendapatkan koleksi objek yang tidak mengandungi data indeks, maka anda boleh menggunakan koleksi jenis Beg atau Set (koleksi mengandungi data dalam bentuk yang tidak diisih, tetapi boleh diisih mengikut permintaan). 9) Apakah perbezaan dalam pengendalian kaedah load(); dan dapat();? kaedah load(); biasanya digunakan apabila anda tidak pasti bahawa objek yang diminta sudah ada dalam pangkalan data. Jika objek tidak dijumpai, maka kaedah membuang pengecualian. Jika objek ditemui, kaedah mengembalikan objek proksi, iaitu pautan ke objek yang terletak dalam pangkalan data (permintaan pangkalan data belum dibuat, sejenis dari lazy retrieval), permintaan terus ke pangkalan data apabila kami Kami terus mengakses objek yang diperlukan melalui objek proksi. get() kaedah; digunakan kemudian, anda tidak pasti 100 peratus sama ada objek yang diminta berada dalam pangkalan data. Dalam kes mengakses objek yang tidak wujud, kaedah get(); akan kembali null. Jika objek ditemui, kaedah get(); akan mengembalikan objek itu sendiri dan pertanyaan pangkalan data akan dibuat serta-merta. 10) Apakah Lazy fetching dalam Hibernate? Jenis daftar keluar Lazy dalam Hibernate dikaitkan dengan entiti daun (anak) dan mentakrifkan dasar daftar keluar bersama jika terdapat permintaan untuk menyemak entiti induk. Contoh mudah: Terdapat entiti House. Ia menyimpan maklumat tentang nombor, jalan, bilangan pangsapuri dan maklumat tentang keluarga yang tinggal di pangsapuri; keluarga ini membentuk entiti kanak-kanak berbanding entiti Dewan. Apabila kami meminta maklumat tentang Rumah, mungkin tidak perlu sama sekali untuk kami mengetahui maklumat tentang keluarga yang tinggal di dalamnya, di sini pengambilan malas membantu kami, yang membolehkan kami mengkonfigurasi entiti Dewan supaya maklumat tentang keluarga disediakan sahaja atas permintaan, ini adalah awan penting permintaan dan mempercepatkan permohonan. ©dev-bay pertanyaan terus ke pangkalan data apabila kami terus mengakses objek yang diperlukan melalui objek proksi. get() kaedah; digunakan kemudian, anda tidak pasti 100 peratus sama ada objek yang diminta berada dalam pangkalan data. Dalam kes mengakses objek yang tidak wujud, kaedah get(); akan kembali null. Jika objek ditemui, kaedah get(); akan mengembalikan objek itu sendiri dan pertanyaan pangkalan data akan dibuat serta-merta. 10) Apakah Lazy fetching dalam Hibernate? Jenis daftar keluar Lazy dalam Hibernate dikaitkan dengan entiti daun (anak) dan mentakrifkan dasar daftar keluar bersama jika terdapat permintaan untuk menyemak entiti induk. Contoh mudah: Terdapat entiti House. Ia menyimpan maklumat tentang nombor, jalan, bilangan pangsapuri dan maklumat tentang keluarga yang tinggal di pangsapuri; keluarga ini membentuk entiti kanak-kanak berbanding entiti Dewan. Apabila kami meminta maklumat tentang Rumah, mungkin tidak perlu sama sekali untuk kami mengetahui maklumat tentang keluarga yang tinggal di dalamnya, di sini pengambilan malas membantu kami, yang membolehkan kami mengkonfigurasi entiti Dewan supaya maklumat tentang keluarga disediakan sahaja atas permintaan, ini adalah awan penting permintaan dan mempercepatkan permohonan. ©dev-bay pertanyaan terus ke pangkalan data apabila kami terus mengakses objek yang diperlukan melalui objek proksi. get() kaedah; digunakan kemudian, anda tidak pasti 100 peratus sama ada objek yang diminta berada dalam pangkalan data. Dalam kes mengakses objek yang tidak wujud, kaedah get(); akan kembali null. Jika objek ditemui, kaedah get(); akan mengembalikan objek itu sendiri dan pertanyaan pangkalan data akan dibuat serta-merta. 10) Apakah Lazy fetching dalam Hibernate? Jenis daftar keluar Lazy dalam Hibernate dikaitkan dengan entiti daun (anak) dan mentakrifkan dasar daftar keluar bersama jika terdapat permintaan untuk menyemak entiti induk. Contoh mudah: Terdapat entiti House. Ia menyimpan maklumat tentang nombor, jalan, bilangan pangsapuri dan maklumat tentang keluarga yang tinggal di pangsapuri; keluarga ini membentuk entiti kanak-kanak berbanding entiti Dewan. Apabila kami meminta maklumat tentang Rumah, mungkin tidak perlu sama sekali untuk kami mengetahui maklumat tentang keluarga yang tinggal di dalamnya, di sini pengambilan malas membantu kami, yang membolehkan kami mengkonfigurasi entiti Dewan supaya maklumat tentang keluarga disediakan sahaja atas permintaan, ini adalah awan penting permintaan dan mempercepatkan permohonan. ©dev-bay
Komen
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION