ضع مخطط الانتقال من ثلاث حالات هنا لتسهيل وظيفة طريقة التحليل:
1. طريقة حفظ () طريقة
الجلسة هي الواجهة الأكثر أهمية بين جميع واجهات السبات ، حيث توفر طرقًا لتوفير البيانات وتحديثها والاستعلام عنها وحذفها.
يمكن أن تقوم طريقة Save () بالجلسة بتحويل حالات مؤقتة أو حرة إلى حالات ثابتة. على سبيل المثال ، احفظ كائن عميل:
SessionFactory SessionFactory ؛ تكوين التكوين = التكوين الجديد (). التكوين () ؛ SessionFactory = configuration.buildSessionFactory () ؛ جلسة الجلسة = SessionFactory.OpenSession () ؛ Transaction Tr = session.begintransaction () ؛ // 1. إنشاء كائن العميل عميل C1 = New Customer () ؛ C1.setId (New Long (1)) ؛ C1.setName ("Test") ؛ C1.setemail ("[email protected]") ؛ C1.setPassword ("123456") ؛ C1.setaddress ("paradise") ؛ // 2. استدعاء طريقة SAVE () للجلسة لاستمرار جلسة كائن العميل.تقوم طريقة Save () بشكل أساسي بالأشياء الثلاثة التالية:
(1) ضع كائن العميل المؤقت الذي تم إنشاؤه بواسطة New في ذاكرة التخزين المؤقت لجعله مستمرًا.
(2) في نفس الوقت ، وفقًا لمولد OID المحدد في ملف رسم خرائط علاقة الكائن ، أي أن طريقة توليد المفاتيح الأساسية تنشئ OID فريدة من نوعها للكائن.
<!-قم بتعيين المفتاح الأساسي-> <edname = "id" column = "id" type = "long"> <!-طريقة توليد المفاتيح الأساسية-> <generatorclass = "stynrement"/> </id>
هناك سؤال في هذا المكان. عند إنشاء كائن ، ما إذا كانت طريقة setID () تنشئ مفتاحًا أساسيًا لاستمرار الكائن. في الواقع ، ليس كذلك. لا يقوم SetID بإنشاء المفتاح الأساسي أثناء تعييننا ، ولكنه يقوم بإنشاء المفتاح الأساسي استنادًا إلى طريقة توليد المفاتيح الأساسية التي تم تكوينها في ملف تعيين علاقة الكائن. يمكن تشغيله عدة مرات ، وينمو المفتاح الأساسي من تلقاء نفسه. يمكنك رؤية أجزاء متعددة من البيانات من قاعدة البيانات. يبدأ المفتاح الأساسي من 1 ، حتى تتمكن من معرفة ذلك setID ()
لم يتم تعيين المفتاح الأساسي ، وإلا فلن يكون التحقق من تفرد المفتاح الأساسي لقاعدة البيانات.
يمكننا أيضًا تعيين قيمة المفتاح الأساسي يدويًا. يجب علينا زيادة تحميل طريقة Save () ، ونستخدم طريقة التحميل الزائد (C1 ، NewLong (1)) ، وتعيينها يدويًا في كل مرة.
(3) التخطيط لتنفيذ بيان الإدراج. لاحظ أنه لا يتم تنفيذ عبارة INSERT على الفور ، وسيتم تنفيذ عبارة INSERT فقط عندما تقوم الجلسة بتنظيف ذاكرة التخزين المؤقت. Tr.Commit () ارتكاب المعاملة.
2. طريقة تحديث ()
تحويل كائنات الحالة الحرة إلى كائنات ثابتة. على سبيل المثال:
SessionFactory SessionFactory ؛ تكوين التكوين = التكوين الجديد (). تكوين () ؛ SessionFactory = configuration.buildSessionFactory () ؛ الجلسة 1 = SessionFactory.OpenSession () ؛ المعاملة tr1 = session1.begintransaction () ؛ // 1. إنشاء كائن العميل عميل C1 = جديد عميل () ؛ c1.setid (جديد طويل (1)) ؛ c1.setName ("اختبار") ؛ c1.setemail ("[email protected]") ؛ C1.setPassword ("123456") ؛ c1.setaddress ("paradise") ؛ // 2. جلسة استدعاء Save () طريقة لاستمرار جلسة كائن العميل 1.Save (C1) ؛ tr1.Commit () ؛ الجلسة 1.Close () ؛ // 3. قم بتحديث كائن الحالة الحر ، والعثور على التغييرات ، وتنفيذ جلسة Session2 = SessionFactory.OpenSession () ؛ المعاملة tr2 = session2.begintransaction () ؛ c1.setAddress ("تحديث اختبار") ؛ Session2.update (C1) ؛ tr2.Commit () ؛ session2.close () ؛يجب أن يفعل التحديث () من الجلسة ما يلي:
(1) أضف كائن العميل المجاني إلى ذاكرة التخزين المؤقت للجلسة لتصبح كائنًا ثابتًا.
(2) تنفيذ بيان التحديث. تمامًا مثل Saving () ينفذ عبارة INSERT ، فإنه لا يقوم بتنفيذ عبارة التحديث على الفور. عند مسح ذاكرة التخزين المؤقت ، يتم تجميع كائن العميل في عبارة تحديث.
ثم تنفذ مرة أخرى.
لاحظ أنه حتى إذا لم يتغير العميل ، فسيتم تجميع عبارة التحديث بشكل افتراضي عند مسح ذاكرة التخزين المؤقت. إذا كان هناك حاجة إلى تغيير ، فيجب تعيين ملف تعيين علاقة الكائن.
3.Session SaveorupDate () طريقة
تحتوي طريقة SaveorUpDate () على وظائف طرق Save () و update () ، ويتم استدعاء طرق مختلفة وفقًا لحالة المعلمة التي تم تمريرها. تمرير كائن مؤقت للاتصال بالطريقة Save () ، إذا تمرير كائن مجاني للاتصال به
تحديث () الطريقة. إرجاع الكائن المستمر الوارد. لذلك ، في كل مرة نحتاج فيها فقط إلى تمرير الكائن ، طريقة SaveorUpDate () ، تحكم تلقائيًا على حالة حالة الكائن التي تم تمريرها ، والاتصال بشكل ديناميكي طريقة المعالجة.
كيف تحدد هذه الطريقة حالة الكائن الوارد؟ عندما يتم استيفاء أي من الشروط التالية ، فهي حالة مؤقتة:
(1) OID لكائن Java فارغ ، مما يعني أن الكائن لم يتم إنشاء مثيل له على خلاف ذلك. حتى لو تم إنشاء مثيل له ، فهو كائن تم حذفه ويصبح حالة مؤقتة بعد حذف الحالة الحرة. في هذه الحالة ، يكون الكائن حالة مؤقتة.
(2) إذا كان كائن Java يحتوي على التحكم في الإصدار وكان رقم الإصدار فارغًا ، فهذا يعني أنه لا يوجد رقم إصدار للكائن.
(3) تخصيص اعتراض ، ودعوة isunsaved () وإرجاع القيمة صحيحة.
4.
تعتمد كلتا الطريقتين على OID ، وتحميل كائن ثابت من قاعدة البيانات. يتم وضع الكائن المستمر في ذاكرة التخزين المؤقت للجلسة ، ويمكن تشغيل الكائن المستمر وفقًا لتلبية الاحتياجات المختلفة.
الفرق بين الاثنين:
عندما لا يكون هناك سجل مقابل في OID في قاعدة البيانات ، يلقي Load () استثناءًا ويحصل على () إرجاع NULL.
5. طريقة حذف () الجلسة ()
حذف () كما يوحي الاسم يستخدم لحذف السجلات المقابلة لكائنات Java من قاعدة البيانات.
حذف () إذا تم تمرير كائن ثابت ، قم بتجميع بيان حذف وتنفيذ الحذف ؛ إذا تم تمرير كائن الحالة الحرة ، فإن السبات يربط أولاً الدولة الحرة إلى الجلسة ، وتصبح حالة مستمرة ، ثم يولد بيان الحذف.
أداء الحذف.
يتم تنفيذ جميعها فقط عند مسح ذاكرة التخزين المؤقت للجلسة.
عمليات الإعدام أعلاه كلها كائن ، يتوافق مع السجل.
يمكنك استخدام Session.delete ("FromCustomerwhere ...") ؛ لحذف بيانات متعددة بعد إضافة شروط.
SessionFactory SessionFactory ؛ تكوين التكوين = التكوين الجديد (). تكوين () ؛ SessionFactory = configuration.buildSessionFactory () ؛ الجلسة 1 = SessionFactory.OpenSession () ؛ المعاملة tr1 = session1.begintransaction () ؛ // 1. إنشاء كائن العميل عميل C1 = جديد عميل () ؛ c1.setid (جديد طويل (1)) ؛ c1.setName ("اختبار") ؛ c1.setemail ("[email protected]") ؛ C1.setPassword ("123456") ؛ c1.setaddress ("paradise") ؛ // 2. استدعاء طريقة SAVE () للجلسة لاستمرار جلسة كائن العميل 1.SAVE (C1) ؛ tr1.Commit () ؛ الجلسة 1.Close () ؛ // 3. قم بربط كائن الحالة الحرة بالجلسة ، ومسح ذاكرة التخزين المؤقت بعد الثبات ، وتنفيذ بيان الحذف ؛ ضعها في الحالة المستمرة لحذفها مباشرة ؛ الجلسة 2 = sessionfactory.opensession () ؛ المعاملة tr2 = session2.begintransaction () ؛ Session2.delete (C1) ؛ tr2.Commit () ؛ session2.close () ؛ نتيجة التنفيذ ، إخراج وحدة التحكم:
Hibernate: حدد Max (ID) من العملاء
Hibernate: insert في العملاء (الاسم ، البريد الإلكتروني ، كلمة المرور ، الهاتف ، الهاتف ، العنوان ، الجنس ، is_mrabed ، الوصف ، الصورة ، عيد ميلاد ، تسجيل _time ، id) القيم (؟ ،؟ ،؟ ،؟ ،؟ ،؟ ،؟ ،؟ ،؟ ،؟ ،؟ ،؟ ،؟ ،؟
السبات: حذف من العملاء حيث معرف =؟
لخص
ما ورد أعلاه هو كل التفسير التفصيلي لإضافة الجلسة والحذف والتعديل وعملية البحث في السبات ، آمل أن يكون مفيدًا للجميع. يمكن للأصدقاء المهتمين الاستمرار في الرجوع إلى الموضوعات الأخرى ذات الصلة على هذا الموقع. إذا كانت هناك أي أوجه قصور ، فيرجى ترك رسالة لإشارةها. شكرا لك يا أصدقائك لدعمكم لهذا الموقع!