مقدمة
MyBatis هو إطار استمرار البيانات شائع الاستخدام في تطوير هندسة الويب. من خلال هذا الإطار ، يمكننا بسهولة إضافة قاعدة البيانات وحذفها وتعديلها والبحث عنها. عندما يرتكب اتصال قاعدة البيانات المعاملات ، فإنه يستهلك الكثير من الموارد. إذا كانت هناك حاجة إلى إدراج المزيد من البيانات المحدثة وتم تقديم بيانات واحدة فقط لكل معاملة ، فستؤدي ذلك إلى مضيعة ضخمة لموارد قاعدة البيانات ، مما يؤدي إلى انخفاض كبير في أداء قاعدة البيانات وأداء النظام.
فيما يتعلق بالإدراج الدُفعات لـ MyBatis ، فإن معظم الأمثلة على الإنترنت تدور حول قواعد بيانات MySQL ، وهناك أمثلة أقل حول قواعد بيانات Oracle. ستقدم لك هذه المقالة المحتوى ذي الصلة حول إدخال دفعة Oracle+MyBatis ، والتحديث والحذف. لن أقول الكثير أدناه ، دعنا نلقي نظرة على المقدمة التفصيلية معًا.
1. أدخل
(1) الطريقة الأولى: استخدم علامة <Foreach> لإنشاء بيانات افتراضية من خلال Union All لتحقيق إدخال الدُفعات (تم التحقق منها)
<insert id = "insertBatchLatContActRecord" parametertype = "java.util.map"> <selectekey resulttype = "java.lang.long" keyproperty = "dto.id" order = "قبل" (المعرف ، contract_id ، contact_add_name ، contact_add_type ، contact_add_phone ، contact_add_home_address ، contact_add_work ، contact_add_work_address ، create_by ، create_time ، modify_by ، modify_time ، validate_state ، sys_source ، isquery) seq_la_t_contact_record.nextval ، a.* from (<foreach collection = "list" item = "dto" index = "index" seplator = "un all"> select #{dto.contractid ، jdbctype = varchar} ، #{dto.contaddname ، ،#{dto.contactaddtype ، jdbctype = varchar} ،#{dto.contactaddphone ، jdbctype = varchar} ،#{dto.contactaddhomeaddress ، jdbctype = varchar} ،# ،#{dto.contactaddwork ، jdbctype = varchar} ،#{dto.contactaddworkaddress ، jdbctype = varchar} ،#{dto.creatby ، jdbctype = decimal} ، systimestamp ،#{dto.modifyby ، jdbctype = ،#{dto.modifytime ، jdbctype = timestamp} ، '1' ،#{dto.syssource ، jdbctype = varchar} ،#{dto.isquery ، jdbctype = varchar} من dual </foreach> a </insert>ملاحظة: يجب أن تكون معلمة الإدخال مجموعة قائمة ، ولا توجد قيم في عبارة SQL ؛
(2) الطريقة الثانية: استخدم الإجراءات المخزنة لتحقيق إدخال الدُفعات (تم التحقق منها)
<insert id = "insertPlanRepaymentOtherFeEbatch" parametertype = "java.util.list"> ابدأ <foreach collection = "list" item = "item" index = "index"> insert in lb_t_plan_repayment_otherfee (id ، key ، value ، them ، unner ، pay_order ، fee_name ، in in_id) القيم (seq_lb_t_plan_repay_otherfee.nextval ،#{item.key ، jdbctype = varchar} ،#{item.value ، jdbctype = varchar} ،#{item.tert ، ،#{item.payorder ، jdbctype = decimal} ،#{item.feename ، jdbctype = varchar} ،#{item.intoid ، jdbctype = varchar}) ؛ </foreach> النهاية ؛ </insert>ملاحظة: لا تزال المعلمات الواردة مجموعات قائمة ، وهناك قيم في SQL ، والتي تستخدم بشكل أساسي الإجراءات المخزنة لتنفيذ إدخال الدُفعات ؛
(3) الطريقة الثالثة: استخدم عبارات SQL الخاصة (البحث عبر الإنترنت ، في انتظار التحقق)
المدونة المرجعية: http://blog.csdn.net/w_y_t_/article/details/51416201
يمكن لبيان SQL التالي تنفيذ إدخال دفعة من البيان!
أدخل جميعها في قيم UserInfo (userId ، اسم المستخدم) ('1001' ، 'tom') في قيم UserInfo (userId ، اسم المستخدم) ('1002' ، 'Black') في قيم المستخدم (userId ، اسم المستخدم) ('1003' ، 'jetty') في قيم المستخدم (userId ، username) (1004) ، "cat ') <insert id = "batchinsertuser" parametertype = "java.util.arraylist"> أدخل جميع <foreach collection = "list" item = "userlist" index = "index"> إلى userInfo (userId ، اختيار المستخدم) (#{userlist.userid} ،#{username})ملاحظة: عندما يكون حجم القائمة أكبر من 500 ، سيفشل ؛
2. تحديث
(1) الطريقة الأولى: استخدم أيضًا الإجراءات المخزنة (البحث عبر الإنترنت ، المدونة أعلاه)
<update id = "batchupdateuser" parametertype = "java.util.arraylist"> <foreach collection = "list" item = "userlist" index = "index" open = "begin" close = "؛ end ؛" Quiperator = "؛">> userInfo t <sted> t.userid = #{userList.userId ، jdbctype = varchar} ، t.username = #{userlist.username ، jdbctype = varchar} ، </set> حيث t.userid = #{userlist.userid ،(2) الطريقة الثانية: استخدام الشروط لتحقيق (التحقق)
<update id = "updateBatchByListatstat" parametertype = "java.util.map"> update la_t_advfinished t1 set t1.list_stat = '07 '، t1.modify_time = systimestamp where t1.id in (
ملاحظة: يمكنك أيضًا استخدام التنفيذ أو المشروط ، على غرار SQL المحذوفة أدناه ؛
3. حذف
على غرار التحديث الثاني
<delete id = "deleteatrectionions" parametertype = "java.util.list"> حذف من مناطق الجذب السياحي <where> <foreach collection = "list" index = "index" item = "emple" ("defleator =" أو "close =")> id =#{item.لخص
ما سبق هو المحتوى الكامل لهذه المقالة. آمل أن يكون لمحتوى هذه المقالة قيمة مرجعية معينة لدراسة أو عمل الجميع. إذا كان لديك أي أسئلة ، فيمكنك ترك رسالة للتواصل. شكرا لك على دعمك إلى wulin.com.