1. ما هي معاملة جافا؟
الاعتقاد السائد هو أن المعاملات ذات صلة بقاعدة البيانات فقط.
يجب أن تتوافق المعاملات مع مبادئ ACID التي وضعتها ISO/IEC. ACID هو اختصار للذرية والاتساق والعزلة والمتانة. وتعني ذرية المعاملة أن أي فشل أثناء تنفيذ المعاملة سيؤدي إلى أن تصبح أي تعديلات تجريها المعاملة غير صالحة. الاتساق يعني أنه عند فشل المعاملة، يجب استعادة جميع البيانات المتأثرة بالمعاملة إلى الحالة التي كانت عليها قبل تنفيذ المعاملة. العزل يعني أن التعديلات على البيانات أثناء تنفيذ المعاملة غير مرئية للمعاملات الأخرى قبل تنفيذ المعاملة. الثبات يعني أن حالة البيانات المقدمة يجب أن تكون صحيحة عند فشل تنفيذ المعاملة.
المفهوم الشائع هو أن المعاملة عبارة عن مجموعة من وحدات التشغيل الذرية، وهي عبارة عن مجموعة من تعليمات SQL، إما يتم تنفيذها جميعًا بنجاح، إذا حدث خطأ في التنفيذ لسبب ما سيتم إلغاء التعليمات التي تم تنفيذها مسبقًا. الجواب الأبسط هو: إما أن تكون جميع عمليات التنفيذ ناجحة، أو يتم إلغاؤها وعدم تنفيذها.
بما أن مفهوم المعاملات يأتي من قاعدة البيانات، فما هي معاملة جافا؟ ما هو الاتصال؟
في الواقع، إذا أراد نظام تطبيق Java تشغيل قاعدة بيانات، فسيتم تنفيذ ذلك من خلال JDBC. يتم تنفيذ كل من الإضافة والتعديل والحذف بشكل غير مباشر من خلال الطرق المقابلة، ويتم أيضًا نقل التحكم في المعاملات إلى كود برنامج Java وفقًا لذلك. لذلك، تُسمى معاملات تشغيل قاعدة البيانات تقليديًا بمعاملات Java.
2. لماذا هناك حاجة للمعاملات
يتم اقتراح المعاملات لحل عمليات أمن البيانات، التحكم في المعاملات هو في الواقع التحكم في الوصول الآمن للبيانات. إليك مثال بسيط: على سبيل المثال، في أعمال التحويل المصرفي، يريد الحساب "أ" تحويل 1000 يوان من حسابه الخاص إلى الحساب "ب". يجب أولاً طرح رصيد الحساب "أ" بمقدار 1000 يوان، ثم يجب طرح رصيد الحساب "ب" سيتم زيادتها بمقدار 1000 يوان. إذا كانت هناك مشكلة في الشبكة الوسيطة، وانتهى خصم 1000 يوان من حساب A، وفشل تشغيل B بسبب انقطاع الشبكة، فإن العمل بأكمله يفشل، ولا بد من السيطرة على طلب إلغاء النقل أعمال حساب A. يمكن أن يضمن ذلك صحة العمل، لإكمال هذه العملية، يلزم إجراء معاملة يتم فيها دمج تخفيض أموال الحساب "أ" وزيادة أموال الحساب "ب" في معاملة واحدة. وبالتالي الحفاظ على أمن البيانات.
3. أنواع معاملات جافا
هناك ثلاثة أنواع من معاملات Java: معاملات JDBC، ومعاملات JTA (Java Transaction API)، ومعاملات الحاوية.
1. معاملات JDBC
يتم التحكم في معاملات JDBC باستخدام كائنات الاتصال. توفر واجهة اتصال JDBC (java.sql.Connection) وضعين للمعاملة: الإرسال التلقائي والإرسال اليدوي. يوفر java.sql.Connection الطرق التالية للتحكم في المعاملات:
مجموعة الفراغ العام AutoCommit (منطقية)
getAutoCommit() المنطقية العامة
التزام الفراغ العام ()
التراجع عن الفراغ العام ()
عند استخدام ترسيم معاملات JDBC، يمكنك دمج عبارات SQL المتعددة في معاملة واحدة. أحد عيوب معاملات JDBC هو أن نطاق المعاملة يقتصر على اتصال قاعدة بيانات واحد. لا يمكن لمعاملة JDBC أن تمتد إلى قواعد بيانات متعددة.