English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
مقدمة إلى MyBatis
MyBatis هو مشروع مفتوح المصدر iBatis من apache، تم نقل هذا المشروع من apache software foundation إلى google code في عام 2010، وتم تغيير اسمه إلى MyBatis. إنه إطار تحكم جيد في قاعدة البيانات الذي يدعم الاستعلامات العادية لـ SQL، الدوال المخزنة، والتحكم في المapping المتقدم، ويقوم بتقليل تقريبًا جميع الكودات اليدوية لـ JDBC والتعيين اليدوي للمعلمات والبحث في مجموعات النتائج. يستخدم MyBatis XML بسيط أو التعليقات للاعدادات والمapping الأصلي، ويقوم بتحويل واجهات Java (Plain Old Java Objects، العناصر البسيطة لـ Java) إلى سجلات في قاعدة البيانات.
مقدمة إلى وكلاء MyBatis
يقدم MyBatis وظيفة واجهة (plugin)، على الرغم من أن اسمه هو واجهة، إلا أن هذا هو وظيفة الوكيل. يسمح MyBatis لك بالتدخل في أي نقطة في تنفيذ جملة المapping. يقدم MyBatis واجهة Interceptor لـ MyBatis، من خلال تنفيذ هذه الواجهة يمكننا تعريف وكلائنا الخاصين.
يستدعي MyBatis أربعة أنواع من الطرق بشكل افتراضي:
1. Executor (تحديث، استعلام، نظف أوامر، التحقق من الصحة، التحقق من الصحة، إغلاق، هو مفتوح)
2. ParameterHandler (الحصول على كائن المعلمات، تعيين المعلمات)
3. ResultSetHandler (معالجة مجموعات النتائج، معالجة المعلمات الناتجة)
4. StatementHandler (تحضير، تحديد، مجموعة، تحديث، استعلام)
كل هذه الأربعة هي طرق Configuration، وتتم تنفيذ هذه الطرق في عملية MyBatis (إضافة، حذف، تعديل، استعلام) دائمًا، والترتيب في التنفيذ هو Executor، ParameterHandler، ResultSetHandler، StatementHandler.
تعريف الواجهة هو:
في هذه الثلاثة طرق، يستخدم plugin بناء المعالج، يستخدم intercept لمعالجة كلاس الوكيل، ويستخدم setProperties لضبط خصائص الوكيل.
كلاس Plugin يطبق واجهة InvocationHandler، ويقوم بتقديم كلاس التخيل التخيلي الخاص بـ JDK، بالنسبة لطريقة wrap الخاصة بـ plugin:
يُحكم على ما إذا كان الهدف الحالي يحتوي على واجهة يجب توقيفها أم لا، إذا لم يكن هناك، فإنه يُرجع الهدف نفسه، وإذا كان هناك، فإنه يُرجع مُساهلة وسيطة.
InvocationHandler للمُساهلة هو Plugin، عندما يتم تنفيذ مُساهلة واجهة الهدف، إذا تم تنفيذها من خلال مُساهلة الوسيط، فإنها تُدعو مُساهلة invoke لمُساهلة invocationHandler، وهو مُساهلة invoke لـ Plugin:
إذا كان المُساهمة التي يتم تنفيذها هي مُساهمة يجب توقيفها مسبقًا، فإنها تُغلف مُساهلة الهدف والمُساهلة التي يجب تنفيذها ومُساهلة المعلمات في مُساهلة Invocation، ثم تُقدم المُساهلة المُغلفة كمعلمات لطريقة intercept للمُساهلة الحالية. إذا لم يكن هناك حاجة إلى توقيف، فإنها تُدعو المُساهلة الحالية مباشرةً.
بالنسبة لطريقة getSignatureMap
يأخذ getSignatureMap أولاً مُساهمة المُساهمة هذه Intercept، ويقوم بالمرور على مُساهمة type، ثم يُحصل على مُساهمة method التي تحتوي على مُساهمة properties وargs، ويُرجع خريطة تحتوي على مفتاح type وقيمة Set<Method>. مثال على فرز مُساهمة update لمساهمة Executor.class، سيُنتج مفتاح Executro وقيمة Method instance، التي تحتوي على MappedStatement وparameter مُساهمة method.
قابلية ضبط المُساهمة:
بيان: محتوى هذا المقال تم جمعه من الإنترنت، ويتمتع صاحب الحقوق الأصلية به، ويتم جمع المحتوى من قبل المستخدمين على الإنترنت بشكل متعاوني وتحميله بشكل مستقل، ويتمتع هذا الموقع بلا حقوق ملكية، ولا يتم تعديل المحتوى بشكل يدوي، ولا يتحمل هذا الموقع أي مسؤولية قانونية ذات صلة. إذا كنت قد وجدت محتوى يشتبه في انتهاك حقوق النسخ، فنرجو منك إرسال بريد إلكتروني إلى: notice#oldtoolbag.com (عند إرسال البريد الإلكتروني، يرجى استبدال '#' بـ '@') لإبلاغنا، وقدم الدليل على الدليل، وإذا تم التحقق من ذلك، فإن هذا الموقع سيقوم بإزالة المحتوى المزعوم بسرعة.