ربما لا تكون العديد من أحذية الأطفال واضحة جدًا أنه في MyBatis ، يمكن استخدام لغات البرمجة النصية المختلفة لتحديد SQL الديناميكي في ملف Mapper ؛ حاليًا ، يدعم MyBatis لغات البرمجة النصية تشمل XML (افتراضي) ؛ السرعة والعلامة الجاذبية. استخدم لغات البرمجة النصية المختلفة لإكمال كتابة ملفات Mapper. الأول هو استخدام لغة البرمجة النصية التي تعرفها ، والثاني هو تحديد المزيد من الإرشادات المخصصة والغنية لتبسيط تطوير Mapper. فيما يتعلق بالتحليل الرئيسي لنصوص دعم MyBatis ، ثم اكتب مقالًا لتحليل تعليمات البرمجة النصية المخصصة. يقدم هذا المقال أولاً استخدام البرامج النصية للسرعة في MyBatis.
يتيح لك مشروع MyBatis-Vvelity استخدام السرعة بسهولة كلغة برمجة لإكمال كتابة مختلف SQL الديناميكي في ملفات Mapper.
لاحظ أن السرعة تستخدم على نطاق واسع في البرامج النصية. إذا لم تكن على دراية به ، فيمكنك أولاً التحقق من البرنامج النصي للسرعة ؛
ثَبَّتَ
إضافة في Maven
<Rependency> <roupled> org.mybatis.scripting </rougiD> <intifactid> mybatis-fvelivity </shintifactid> <الإصدار> 1.2 </version> </sependency>
لاحظ أننا نستخدم الإصدار 1.2 MyBatis-Lvity ، والذي يتطلب دعم MyBatis3.3 ؛
في ملف تكوين MyBatis ، قم بتعيين محرك SPEROCITY SCRIPT كمحرك ملف MAPPER الافتراضي:
<TypeAliases> ... <typealias type = "org.mybatis.scripting.velocity.driver" alias = "velocity"/> </typealiases> <settings> ... <setting name = "defaultscriptinglanguage" value = "velocity"/> </settings>
التكوين اكتمل.
بعد ذلك ، يمكنك استخدام البرنامج النصي للسرعة في ملف mapper:
<SELECT ID = "FindPerson" lang = "velocity"> #set ($ pattern = $ _parameter.name + '٪') حدد * من الشخص حيث الاسم مثل {pattern ، jdbctype = varchar} </select>يلاحظ:
إذا تم استخدام السرعة ، يجب الرجوع إلى المعلمات باستخدام @{} ، لأن توجيه السرعة يبدأ بـ #، مثل #set #if ، إلخ. ؛
باستخدام البرنامج النصي للسرعة ، يمكنك أيضًا تكوين javatype و jdbctype المقابلة في المعلمات ؛ تنسيق التكوين هو: @{property ، attr1 = val1 ، attr2 = val2 ، ...} ؛ العناصر القابلة للتكوين هي javatype و jdbctype و mode و numericscale و resultmap و typehandler و jdbctypename ؛
استخدم المتغيرات في السياق في توجيهات السرعة ، واستخدم $ _parameter كمرجع بادئة ، على سبيل المثال
#if ($ _ parameter.name) #set ($ _ name = '٪'+$ _ parameter.name+'٪') واسم مثل {_ name}#MyBatis-Velocity Breamity أمر
بالإضافة إلى توجيه السرعة ، يحدد مشروع MyBatis-Vvelicity بعض توجيهات السرعة المدمجة لـ MyBatis:
تقليم
#trim (بادئة بادئة اللاحقة اللاحقة) الجسم #
معنى المعلمات فيه هو نفس معنى المعلمة القطع في XML ؛
مثال:
#trim ("حيث" "و | أو" أو ")#if ($ _ parameter.name) #set ($ _ name = '٪'+$ _ parameter.name+'٪') واسم مثل {_ name}#end#end أين
#where () body #end #where () هو نفسه <NEH> في xml. يمكنك استبدال و/أو قبل الشرط واستبداله مع أين ؛ لاحظ أنه /أين () يحتوي على قوسين ؛
MSET
#MSET () Body #End #MSET يتم إضافة M قبله ، من أجل التمييز بينه وبين التوجيه #set للسرعة نفسها. #MSET يعادل العنصر <stip> في XML. يمكنك إضافة عبارة SET قبل الشرط وإزالة Semicolon في كتلة المجموعة الأخيرة ؛
مثال:
<update id = "update"> تحديث user #mset () #if ($ _ parameter.name) name =@{name} ، #end #if ($ _ parameter. يكرر
#Repeat (Collection var Seplator Open) Body #End #RECENT THREAGE هو نفسه عنصر <ForeACH> في XML. يمكن أن يعبر بسهولة عناصر نوع التجميع/الصفيف واستخدام كل عنصر فيه:
مثال:
حدد *من المدينة #where () #Repeat ($ _parameter.ids $ id "،" "state_id in (" ")") @{id} #end #end في
#in (مجموعة VAR Field) الجسم #
التوجيه #in هو توجيه جديد يمكنه إنشاء الحقل المقابل بسرعة في () بيان في الظروف في SQL ؛ في قائمة المعلمات ، تمثل المجموعة المحتوى في in to to to to to to to to to to to to to to to to to to to to to يمثل VAR الاسم المرجعي المؤقت لكل كائن في اجتياز ؛ يمثل الحقل اسم الحقل الذي تم إنشاؤه قبل البيان ؛
مثال:
حدد *من المدينة #where () #in ($ _parameter.ids $ id "state_id") @{id} #end #endالأوامر المخصصة
تتيح لك MyBatis-Vvelity تخصيص تعليماتك الخاصة لتبسيط التطوير. خطوات التعليمات المخصصة هي:
إضافة ملف تكوين mybatis-velocity.properties في classpath ؛
إنشاء فئة تحليل توجيه السرعة الخاصة بك ؛
أضف فئة التحليل التوجيهية VELOCITY التي قمت بإنشائها إلى ملف التكوين ؛
استخدام التوجيهات في ملف mapper.xml ؛
مثال:
. يمتد الفئة العامة myDirective التوجيه {} // mybatis-velocity.properties// إذا كانت هناك فئات توجيهات مخصصة متعددة ، افصلها باستخدام فاصلة فاصلة ؛ userDirective = com.myproject.directives.myDirective ؛ // mapper xml filect *from city #mydirective () ...... #استخدام شامل
إذا كنت تستخدم سرعة mybatis ، يمكن أن تبدو خريطة التجد النموذجية مثل هذا:
<mapper namespace = "mybatis.com._520it.mybatis.usermapper"> <resultmap type = "user" id = "user_mapping"> <id column = "id" property = "id"/> <result column = "name" propert property = "borndate"/> <ResultMap> <insert id = "add" keycolumn = "id" keyproperty = "id" usegeneratedkeys = "true"> insert in user (name ، age ، borndate) bord id = "update"> تحديث user #mset () #if ($ _ parameter.name) name =@{name} ، #end #if ($ _ parameter.age) age =@act} ، #end #if ($ _ parameter.borndate) born =@{borndate} #endwhere id = {id} parametertype = "long" elete من المستخدم حيث id = @{id} </delete> <sql id = "user_column"> معرف ، الاسم ، العمر ، borndate </sql> <select id = "get" resultmap = "user_mapping"> select <refid = "user_column"/> من user eD = {ex} resultmap = "user_mapping"> حدد <تضمين refid = "user_column"/> من المستخدم </select> <تحديد معرف = "listbyname" resultmap = "user_mapping" parametertype = "string"> select <refid = "user_column"/> from use = {name} المعرف ، الاسم ، العمر ، borndatefrom user#where ()#if ($ _ parameter.name) #set ($ _ name = '٪'+$ _ parameter.name+'٪') واسم مثل {_ name} @{start} ، @{pagesize}#end </select> </kapper>ما ورد أعلاه هو شرح مفصل للاستخدام التعليمي للسيناريو MyBatis Velocity الذي قدمه لك المحرر (موصى به). آمل أن يكون ذلك مفيدًا لك. إذا كان لديك أي أسئلة ، فيرجى ترك رسالة لي وسوف يرد المحرر إليك في الوقت المناسب. شكرا جزيلا لدعمكم لموقع wulin.com!