مقدمة
تستخدم معظم المشاريع الآن MyBatis ، لكن بعض الشركات تستخدم السبات. أكبر ميزة لاستخدام MyBatis هي أن SQL تحتاج إلى كتابة بنفسها ، وكتابة SQL تتطلب تمرير معلمات متعددة. في مواجهة سيناريوهات الأعمال المعقدة المختلفة ، يعد تمرير المعلمات أيضًا نوعًا من المعرفة.
نلخص أدناه الطرق التالية من انتقال المعلمات المتعددة.
الطريقة 1: طريقة نقل المعلمة المتسلسلة
تمثل الأرقام في #{} الترتيب الذي تمر به المعلمات.
لا ينصح باستخدام هذه الطريقة ، فإن تعبير طبقة SQL غير بديهي ، والأخطاء عرضة للحدوث بمجرد تعديل الطلب.
الطريقة 2: طريقة التعليق التوضيحي param من معلمات تمرير
يتوافق الاسم في #{} مع الاسم المعدل في قوسين التعليقات التوضيحية.
هذه الطريقة بديهية للغاية عندما لا يكون هناك العديد من المعلمات ، لذلك يوصى باستخدامها.
الطريقة 3: طريقة نقل معلمة الخريطة
يتوافق الاسم في #{} مع اسم المفتاح في الخريطة.
هذه الطريقة مناسبة لتمرير معلمات متعددة والمعلمات متقلبة ويمكن نقلها بمرونة.
الطريقة 4: طريقة نقل معلمة Bean Java
يتوافق الاسم في #{} مع سمات العضو في فئة المستخدم.
هذه الطريقة بديهية للغاية ، لكنها تتطلب بناء فئة كيان. ليس من السهل التوسع. يتطلب إضافة سمات لاستخدامها وفقًا للموقف.
طريقة مرور المعلمة عند استخدام واجهة Mapper
عندما تستخدم MyBatis واجهة Mapper للبرمجة ، تستخدم الطبقة الأساسية آلية وكيل ديناميكي ، والتي يتم استدعاؤها على السطح ، ولكن في الواقع من خلال الطريقة المقابلة لـ SQLSession التي تسمى الوكيل الديناميكي ، مثل Selectone (). يمكن للأصدقاء المهتمين التحقق من طريقة getMapper () لـ DefaultSqlSession ، والتي ستحصل في نهاية المطاف على كائن MapPerproxy الذي يحقق واجهة Mapper. عندما يقوم كائن MapPerProxy باستدعاء طريقة واجهة Mapper ، فإنه سيقوم بتحويل المعلمات التي تم تمريرها ، ثم استخدام المعلمات المحولة مثل المعلمة لاستدعاء طرق التشغيل المقابلة المقابلة لـ SQLSession (مثل SelectOne ، insert ، وما إلى ذلك). يمكن تنفيذ عملية التحويل مع الإشارة إلى طريقة التنفيذ () لـ MapPerMethod. ببساطة ، القواعد التالية:
1. إذا كانت المُقار عبارة عن معلمة واحدة ولم يتم تسميتها مع شرح التعليقات التوضيحية param ، فإن الطريقة المقابلة لـ SQLSession تسمى مباشرة مع المعلمة الفردية كمعلمة حقيقية.
2. إذا لم تكن المرور معلمة واحدة أو تحتوي على معلمات تسمى مع مراقبة @Param ، فسيتم تحويل المعلمة المقابلة إلى خريطة للمرور. القواعد المحددة هي كما يلي:
2.1. سيتم تخزين المعلمات المقابلة كمفاتيح في الخريطة الهدف في شكل param1 و param2 و paramn بالترتيب. المعلمة الأولى هي param1 والمعلمة nth هي paramn.
2.2. إذا كانت المعلمة عبارة عن معلمة سميت مع تعليق @Param ، فسيتم تخزينها في الخريطة المستهدفة مع الاسم المحدد بواسطة param كمفتاح.
2.3. إذا لم تتم تسمية المعلمات على اسم شرح @Param ، فسيتم تخزينها كمفاتيح في الخريطة المستهدفة في شكل 0 و 1 و N بالترتيب. المعلمة الأولى هي 0 والمعلمة nth هي N.
لخص
ما سبق هو المحتوى الكامل لهذه المقالة. آمل أن يكون لمحتوى هذه المقالة قيمة مرجعية معينة لدراسة أو عمل الجميع. إذا كان لديك أي أسئلة ، فيمكنك ترك رسالة للتواصل. شكرا لك على دعمك إلى wulin.com.