الشؤون
المعاملة هي وحدة تنفيذ منطقية تتكون من تسلسل تشغيل خطوة واحدة أو خطوات متعددة. أربع خصائص للمعاملات: الذرة ، الاتساق ، isoization ، ومتانة ذرة: لا يمكن تقسيم أصغر وحدة تنفيذ لتطبيق المعاملات. هذا هو الحد الأدنى من هيئة التنفيذ المنطقية التي لم تعد مقسمة في الشؤون.
الاتساق: يجب أن تجعل نتيجة تنفيذ المعاملة قاعدة البيانات من الاتساق إلى حالة أخرى.
isoities: لا يتم تدخل تنفيذ كل معاملة ، ويتم عزل العمليات الداخلية لأي معاملة للمعاملات المتزامنة الأخرى. أي: لا يمكن رؤية الحالة الوسيطة للطرف الآخر بين معاملة التنفيذ المتزامن ، ولا يمكن أن تتأثر شؤون التنفيذ المتزامن ببعضها البعض.
المتانة: تُعرف الاستمرارية أيضًا بالثبات.
الجمل التي تنطوي عليها قاعدة البيانات المعتادة هي: مجموعة من DML (لغة دقة البيانات ، لغة تشغيل البيانات) ، ستحافظ هذه المجموعة من عبارات DML على اتساق جيد بعد التعديل ؛ ؛ لغة التحكم في البيانات ، لغة التحكم في البيانات) بيان ، يمنح البيانات بشكل رئيسي وإلغاء البيانات. يمكن أن تكون عبارات DDL و DCL متاحة فقط على الأكثر ، لأنها ستتسبب في تقديم المعاملات على الفور. عندما يتم تنفيذ جميع عمليات قاعدة البيانات الواردة في المكتب بنجاح ، يجب تقديم المعاملات لجعل هذه التعديلات سارية بشكل دائم. هناك طريقتان لتقديم المعاملات: تقديم العرض وتقديم التلقائي. عرض العرض: استخدم الالتزام لتقديم التقديم التلقائي: تنفيذ DLL أو DCL ، أو يتم سحب البرنامج من أي عملية قاعدة بيانات لتنفيذ أي قاعدة بيانات موجودة في المعاملة ، يجب أن يتم التراجع عنها لإجراء جميع التعديلات في المعاملة. هناك طريقتان لفة المعاملة: عرض التراجع والتراجع التلقائي. إظهار التراجع: استخدم التراجع للفة تلقائيًا: خطأ في النظام أو الخروج بالقوة.
القضايا المحتملة للمعاملات المتزامنة
1. القراءة القذرة: تقرأ معاملة واحدة البيانات التي لم يتم تقديمها بواسطة معاملة أخرى
2. قراءة غير قابلة للتخفيف: يؤدي تشغيل معاملة واحدة إلى قراءة بيانات مختلفة مرتين قبل وبعد آخر
3. القراءة الوهمية: يؤدي تشغيل معاملة واحدة إلى نتائج نتائج نتائج استعلامات قبل وبعد أخرى
مثال:
أثناء تنفيذ المعاملة A و B:
آلية معاملة Java JDBC
استيراد java.sql.connection ؛ المستخدم النهائي = "الجذر" ؛ String QuerySql = "Query SQL" ؛ تحديث PSTMTUPDATE = ) ؛ } أخيرًا {try {if (pstmtupDate! = null) {pstmtupDate.close () ؛} if (pstmtqury! = null) {pstmtqury.close () ؛} if (con! = null) {conn.cl ose (Ose) ؛}} catch (sqlexception e2) {}}}}}}
دعم شؤون JDBC
يدعم اتصال JDBC الأشياء أيضًا. بمعنى آخر ، سيتم تقديم تنفيذ كل عبارة SQL إلى قاعدة البيانات على الفور ، والتي ستكون فعالة بشكل دائم ولا يمكن تشغيلها. أغلق التقديم التلقائي للاتصال وابدأ الأمور. طريقة التوصيل setautocommit هي: connection.setautocommit (false) ؛ عند تشغيل الأشياء ، لن يتم إرسال عملية قاعدة البيانات المكتملة في الاتصال الحالي إلى قاعدة البيانات على الفور ، ونحن بحاجة إلى استدعاء طريقة الاتصال بالاتصال. إذا كان هناك فشل في البيان ، فيمكنك استدعاء التراجع ذهابًا وإيابًا. ملاحظة: إذا واجه الاتصال شذوذ SQLEXCEPTION غير معالجة ، فسيخرج النظام بشكل غير طبيعي ، وسيقوم النظام تلقائيًا بتراجع المعاملة. إذا كان البرنامج يلتقط هذا الشذوذ ، فمن الضروري عرض معاملة التراجع في العلاج غير الطبيعي. يوفر الاتصال طرقًا لتحديد نقطة الادخار في منتصف المعاملة: SetSavePoint. نقطة. SavePoint SetSavepoint (اسم السلسلة): قم بإنشاء نقطة مودعة مع اسم محدد في المعاملة الحالية وإرجاع كائن SavePoint للنقطة الوسيطة. وفقا لكائن النقطة الوسط. اسم الإعداد هو مجرد تمييز أفضل بين كائن النقطة الوسطى.
ينعكس دعم JDBC للمعاملات في ثلاثة جوانب:
1. وضع التلقائي التلقائي
يوفر الاتصال خاصية لالتزام تلقائي لتحديد متى تنتهي المعاملة
2. عندما يكون الالتزام التلقائي صحيحًا ، عند اكتمال تنفيذ كل عملية SQL مستقلة ، يتم تقديم المعاملة على الفور ، مما يعني أن كل عملية SQL هي معاملة
عندما يتم حساب عملية SQL مستقلة ، يتم تعريف مواصفات JDBC مثل هذا:
بالنسبة لغية تشغيل البيانات (DML) ولغة تعريف البيانات (DDL) ، بمجرد تنفيذ الجملة
3. عندما تكون اللبلاب التلقائي خاطئة ، يجب أن تعرض كل معاملة طريقة الاتصال لإرسالها ، أو يتم عرض طريقة رد الاتصال لتدحرج. الافتراض التلقائي الافتراضي
مستويات المعاملة
يحدد JDBC مستوى خمسة معاملات ::
نقطة الحفظ
يحدد JDBC واجهة SavePoint ويوفر آلية التحكم في المعاملات الأكثر غرابة. عندما يتم تعيين نقطة التوفير ، يمكنك التراجع إلى الحالة في نقطة الادخار ، وليس المعاملة الكاملة للتراجع. يمكنك الاستعلام عن هذه المعلومات. نفذ بيان التعديل قبل إجراء التحقيق. لحل هذه المشكلة ، يجب أن نقدم آلية معاملة JDBC.