تعلمت اليوم كيفية إضافة قاعدة البيانات وحذفها وتعديلها والتحقق منها من خلال السبات. اسمحوا لي أن أقدمه بإيجاز:
أولا قم بإنشاء فصل دراسي:
package com.hibernate.model ؛ استيراد javax.persistence.column ؛ استيراد javax.persistence.entity ؛ استيراد javax.persistence.generatedvalue ؛ استيراد javax.persistence.id private ؛ minive javax.persistence. joldlace ؛ idgeneratedValueColumn (name = "_id") public int getId () {return id ؛} public void setId (int id) {this.id = id ؛}@column (name = "_name") public string getName () {return name ؛ getAge () {return Age ؛} public void setage (int age) {this.age = age ؛}@column (name = "_birthplace") public getBirthplace () {return ridelplace ؛ ثم قم بإنشاء أفضل حالة اختبار من نوع Junit:
دعنا نتحدث عن طريقة Session.save () أولاً ، أي إضافة:
package com.hibernate.model ؛ import org.hibernate.query ؛ استيراد org.hibernate.session ؛ استيراد org.hibernate.sessionfactory ؛ استيراد org.hibernate.cfg.annotationConfiguration ؛ import org.junit.afterclass ؛ import org.junit.beforeclass ؛ static sessionfactory sf = null ؛ beforeClass public static void beforeclass () {try {sf = new enronotationConfiguration (). configure (). void testSave () {// زيادة المعلم t = المعلم الجديد () ؛ t.setage (23) ؛ t.setName ("moluo") ؛ بعد الفئة () {sf.close () ؛}}نتائج مشرقة:
دعنا نتحدث عن طريقة session.delete () ، أي حذف:
test public void testDelete () {// delete teacher t = new teacher () ؛نتائج مشرقة:
ثم ، انتقل إلى Session.get () ، أي تحقق:
test public void testget () {// get session session = sf.getCurrentsession () ؛ Session.begintransaction () ؛ المعلم t = (المعلم) الجلسة. System.out.println ("الاسم:"+t.getName ()) ؛ session.getTransaction (). الالتزام () ؛ }نتائج مشرقة:
hibernate: حدد المعلم _ الاسم هو: مولو
دعنا نأخذ طريقة استعلام أخرى: session.load ()
test public void testload () {// session session = sf.getCurrentsession () ؛ Session.begintransaction () ؛ المعلم t = (المعلم) session.load (Teacher.Class ، 1) ؛ System.out.println ("الاسم:"+t.getName ()) ؛ session.getTransaction (). الالتزام () ؛ }نتائج مشرقة:
hibernate: حدد المعلم _ الاسم هو: مولو
هنا نوضح الفرق بين هذين الاستفسارات: أولاً وقبل كل شيء ، عندما لا يكون الكائن الذي يجب استعلامه غير موجود ، تختلف المعلومات التي تم إرجاعها. سيعود الحصول على الطريقة: java.lang.nullpointerxception
ستعود طريقة التحميل: org.hibernate.objectnotfoundexception:
ثانياً ، يقوم التحميل بإرجاع كائن وكيل ، وسيتم إصدار عبارات SQL عند استخدامها بالفعل ؛ بالإضافة إلى ذلك ، احصل على عمليات تحميل مباشرة من قاعدة البيانات ، دون تأخير.
أخيرًا ، دعنا نتحدث عن أساليب التحديث الأكثر استخدامًا ، ونقوم بتحديثها من خلال عبارات HQL:
test public void testupdate () {// تحديث جلسة الجلسة = sf.getCurrentsession () ؛ Session.begintransaction () ؛ url url = "تحديث المعلم t set t.birthplace = 'anhui' حيث id = 1" ؛ // لاحظ أن المعلم هنا يجب أن يكون اسم الكائن ، وليس اسم الجدول ، T هو الاسم المستعار لاستعلام الكائن q = session.createquery (url) ؛ // الحزمة المستوردة هنا هي: استيراد org.hibernate.query ؛ q.executeupdate () ؛ session.getTransaction (). الالتزام () ؛ }نتائج مشرقة:
من خلال التحديث ، تم تحديث مسقط رأس Moro من Huangshan إلى Anhui ...
في الواقع ، هناك طريقة تحديث Session.update () ، ولكن طريقة التحديث هذه هي مجرد طريقة التحديث هذه. إذا قمت بتحديث جزء من الأعمدة في وقت واحد فقط ، فستقوم طريقة التحديث هذه بتحديث جميع الأعمدة ، وهي ليست فعالة للغاية ، لذلك لا ينصح باستخدامها. بالطبع ، هناك أيضًا طرق للتعويض عنهم. على سبيل المثال ، إذا كنت تستخدم XML ، فيمكنك تعيين update = "false" في علامة خاصية عمود لا تريد تحديثه في ملف التكوين ؛ بالإضافة إلى ذلك ، يمكنك أيضًا تعيين تحديثات ديناميكية بعد فئة ملف التكوين: Dynamic-Update = "True" ؛ بالطبع ، إذا كنت تستخدم التعليق التوضيحي ، فيمكنك تعيين Column (update = "false") ؛ في الواقع ، هذه ليست مرنة ، واستخدام HQL هو الأفضل ، لذلك يتم نشر رمز تحديث HQL فقط هنا.
لخص
ما سبق هو كل محتوى هذه المقالة حول تحليل مثال Hibernate لإضافة العمليات وحذفها وتعديلها والبحث من خلال الجلسة. آمل أن يكون ذلك مفيدًا للجميع. يمكن للأصدقاء المهتمين الرجوع إلى هذا الموقع:
تعرف بسرعة على الجلسة في السبات
رمز شرح مستوى السمة السمة من السبات
يستخدم Hibernate HBM.XML لتكوين تحليل علاقة التعيين
إذا كانت هناك أي أوجه قصور ، فيرجى ترك رسالة لإشارةها. شكرا لك يا أصدقائك لدعمكم لهذا الموقع!