1. ما هو MyBatis Dynamic SQL
عندما نرى الديناميكية ، يجب أن نعتقد أن هذا عبارة عن بيان SQL يمكن تغييره.
يعتمد SQL الديناميكي لـ MyBatis على تعبيرات ognl ، والتي يمكن أن تساعدنا بسهولة في تنفيذ منطق معين في عبارات SQL.
2. التحضير قبل استخدام MyBatis Dynamic SQL
أ. جدول قاعدة البيانات
ب. إنشاء فصل
3. باستخدام MyBatis Dynamic SQL ، يجب أولاً معرفة بعض قيم السمات
1. أدخل
SELECTEKEY: تم تنفيذ عبارة SQL قبل أو بعد بيان SQL
KeyColumn: اسم الحقل المقابل أو الاسم المستعار
KeyProperty: اسم السمة أو قيمة مفتاح الخريطة المقابلة لفئة الكيان
الترتيب: تنفيذ قبل أو بعد بيان التنفيذ
النتيجة: نوع نتيجة الإرجاع
الطريقة الأولى: أسهل إدخال SQL ديناميكي
أدخل في قيم المسار (seq_course.nextval ،#{coursecode} ،#{coursename}) حدد max (id) currid من الدورة التدريبيةامتحان
نتائج الاختبار
بالطريقة الثانية: إذا كنت لا أرغب في إدراج العديد من الحقول ولا أريد إدراج حقل اسم CoursEname ، فمن المؤكد أن الطريقة الأولى غير ممكنة.
أدخل في المسار (المعرف ، رمز Coursecode ، CoursEname) (seq_course.nextval ،#{coursecode} ،#{coursename})الاختبارات والنتائج
من هذا يمكننا أن نرى أنه يمكن تحقيق هذه الطريقة عندما لا أرغب في إدراج حقل رمز Coursecode.
الآن العنوان هنا مرة أخرى. ماذا يحدث إذا أردنا تحويل الحقل الأخير إلى فارغ ، أو كلا الحقولين إلى فارغة
يصبح الحقل الأخير فارغًا
يبدو أن هناك فاصلة وراء علامة الاستفهام الأولى على وحدة التحكم
جرب كلا الحقلين يصبحان فارغين
لا تزال هناك فاصلة
سبب الموقف أعلاه هو أنه عندما لا نريد إدراج الحقل ، لم نزيل الفاصلة. نقدم الآن الطريقة الثالثة.
الطريقة الثالثة هي إزالة الفواصل الزائدة
هذه الطريقة تحتاج إلى تقديم تقليم
يحتوي Trim أيضًا على العديد من الخصائص
البادئة: إضافة بادئة
prefixoverrides: تجاوز البادئة
لاحقة: أضف لاحقة
Raffixoverrides: تجاوز اللاحقة
ID ، Coursecode ، Coursenameseq_course.nextval ،#{coursecode} ،#{coursename}انظر ، تم حل المشكلة
عند العمل في المشاريع ، غالبًا ما نقوم بإدخال البيانات في قاعدة البيانات. في بعض الأحيان نريد إدراج قطع متعددة في نفس الوقت. لذا ، كيف يجب أن ندرج قطعًا متعددة من البيانات باستخدام MyBatis؟
هنا ، نحتاج إلى حل العديد من المشكلات
1. كيف ننسخ بنية الجدول
قم بإنشاء جدول دورة 02 كما حدد * من الدورة التدريبية
هل هذا البيان مألوف جدا؟ نعم ، لا ينسخ جدول الدورة التدريبية 02 بنية جدول جدول الدورة التدريبية فحسب ، بل يقوم أيضًا بنسخ محتوى جدول الدورة التدريبية في.
2. كيف نقوم بنسخ بنية جدول الدورة فقط بدلاً من محتوى جدول الدورة التدريبية
قم بإنشاء جدول دورة 03 كما حدد * من الدورة حيث 1! = 1 ؛
3. إذن عند الإدخال ، هل هو نفس هذا؟
أدخل في المسار 03 حدد * من الدورة التدريبية ؛
الجواب هو نفسه
4. كيفية إدراج عبارات متعددة
أدخل في الدورة التدريبية 03select "6" ، "YC06" ، "بنية البيانات 06" من ثنائي النقابات "7" ، "YC07" ، "بنية البيانات 07" من ثنائي الاتحادات "8" ، "YC08" ، "بنية البيانات 08" من الثنائيات "8" ، "YC08 ،".
الآن وبعد توفر عبارة SQL ، يمكننا إدراجها في ملف التكوين
إدراج في الدورات CORSESELECT#{CORSES.ID} ،#{compses.coursecode} ،#{compses.coursename}2. تعديل
1. استخدم القطع. كما ذكرنا سابقًا ، يمكنك استخدام trim to defix بسبب السمة faffixoverrides
تحديث الدورة التدريبية setCoursecode =#{coursecode} ، coursEname =#{coursEname} حيث id =#{id}2. استخدم المجموعة ، والتي يمكن استبدالها في البيان ، وكذلك إزالة اللاحقة.
تحديث coursecoursecode =#{coursecode} ، coursEname =#{coursEname} حيث id =#{id}3. عند التعديل ، سنقوم أيضًا بإجراء تغييرات انتقائية. في بعض الأحيان لا نريد تعديل القيمة لجعلها متسقة مع القيمة دون تعديل.
الاختيار يعادل المتعددة إذا
أول واحد يعادل إذا ، والثاني يعادل آخر إذا
خلاف ذلك يساوي آخر
تحديث coursecoursecode =#{coursecode} ، coursecode = coursecode ، coursEname =#{coursEname} ، coursename = coursEname ، حيث id =#{id}ما سبق هو المحتوى الكامل لـ MyBatis Dynamic SQL المقدمة لك. آمل أن يكون ذلك مفيدًا للجميع!