تعميم سريع
1. ما هو mybatis
MyBatis هو إطار طبقة استمرار ممتازة يدعم استعلامات SQL العادية والإجراءات المخزنة ورسم الخرائط المتقدمة.
يقوم MyBatis بإلغاء الإعدادات اليدوية لجميع كود JDBC تقريبًا والمعلمات وتغليف البحث في مجموعة النتائج. يمكن لـ MyBatis استخدام XML البسيط أو التعليقات التوضيحية للتكوين والتعيين الأصلي ، ورسم الخرائط وواجهات Java (كائنات Java القديمة) في سجلات في قاعدة البيانات.
MyBatis ينفذ الواجهة ملزمة ، مما يجعله أكثر ملاءمة للاستخدام.
تحسن في رسم خرائط علاقة الكائن ، أكثر كفاءة
يستخدم MyBatis تعبيرات قوية تستند إلى ognl للتخلص من العناصر الأخرى.
2. العمارة الوظيفية
3. عملية التنفيذ
شرح مفصل للمبدأ:
يقوم تطبيق MyBatis بإنشاء SQLSessionFactory استنادًا إلى ملف تكوين XML. يأتي التكوين من مكانين وفقًا للتكوين ، أحدهما هو ملف التكوين والآخر هو توضيح رمز Java ، ويحصل على SQLSession. يحتوي SQLSession على جميع الطرق المطلوبة لتنفيذ SQL. يمكنك تشغيل عبارات SQL المعينة مباشرة من خلال مثيل SQLSession لإكمال إضافة البيانات ، والحذف ، والتعديل والاستعلام ، وتقديم المعاملات ، وما إلى ذلك ، وإغلاق SQLSession بعد الاستخدام.
دعونا نلقي نظرة على النقاط الرئيسية لهذه المقالة. MyBatis التعليقات التوضيحية البسيطة
كلمات التعليقات التعليمية الرئيسية:
@insert: أدخل SQL ، بناء الجملة هو بالضبط نفس XML إدراج SQL
@select: Query SQL ، وبناء الجملة هو بالضبط نفس XML Select SQL
update: تحديث SQL ، وبناء جملة XML Update SQL هو نفسه بالضبط
@delete: حذف SQL ، وبناء الجملة هو بالضبط نفس XML Delete SQL
param: أدخل الجينسنغ
Results: مجموعة النتائج
Result: النتائج
1. نموذج المجال:
الفئة العامة userdo {private long id ؛ private string username ؛ private date gmtcreate ؛ تاريخ خاص gmtmodified ؛ public long getId () {restur getGmtCreate () {return gmtcreate ؛} public void setgmtcreate (date gmtcreate) {this.gmtcreate = gmtcreate ؛} التاريخ العام getGmtModified () {this.gtmodified ؛2. تعريف الواجهة:
الواجهة العامة userDao {insert ("insert في t_user (gmt_create ، gmt_modified ، user_name) القيم (الآن () ، الآن () ، #{username})") public int insert (param ("username) stername) ؛ @select ("حدد * من t_user where id = #{id}") public userdo selectByuserId (param ("id") معرف طويل) ؛@update ("تحديث t_user تعيين gmt_modified = now () ، user_name = #username} حيث id = #id}" param ("id") معرف طويل) ؛ delete ("حذف من t_user حيث id = #{id}") public int udpateById (param ("id") معرف طويل) ؛ }3. MyBatis XML Config:
<!-MyBatis annotation-> <bean id = "sqlsessionfactory"> <property name = "dataSource" ref = "mysqlbase" /> <!-هنا تحتاج فقط إلى تكوين مصدر البيانات الخاص بك-> < /bean> <bean id = "userdao" واجهة-> <property name = "sqlsessionfactory" ref = "sqlsessionfactory" /> <!-SQLSession Factory-> </ban>
وبهذه الطريقة ، نكممل عرض MyBatis باستخدام التعليقات التوضيحية. ألا تشعر بالبساطة؟
إذا كنت على دراية بـ MyBatis XML ، في معظم الحالات ، نحتاج إلى تعيين أسماء الحقول لجداول قاعدة البيانات إلى الفصل. يوفر شرح MyBatis أيضًا وظائف رسم الخرائط ، وبناء الجملة متشابهة.
@select ("حدد * من tsp_template أين المعرف = #{id}")@results (value = {result (property = "username" ، column = "user_name" ، javatype = string.class ، jdbctype = jdbctypeبالطبع ، ما سبق هو أن SQL لا يمكن أن يكون بسيطًا بعد الآن. فكر في الأمر إذا كان لدينا هذا المطلب ، فنحن نقوم بتحديث معلومات المستخدم ونأمل في تحديث قيمة السمة المحددة. بمعنى آخر ، ننشئ SQL ديناميكيًا مثل XML. ثم لا يمكننا ببساطة استخدام التعليق التوضيحي @update تقريبًا. لحسن الحظ ، يوفر MyBatis القوي أيضًا مجموعة SQL ديناميكية.
SQL الديناميكي
العلاقة المقابلة على النحو التالي
@insert: @insertprovider
@select: selectprovider
update: updateprovider
delete: deleteprovider
تستخدم معرفات شرح الموفر الأربعة SQL الديناميكي واستخدام تنسيق بناء الجملة:
upDateProvider (type = userProvider.class ، method = "updatesql")
كيفية بناء SQL الديناميكي
الفئة العامة userProvider {/*** udpate* param userdo userdo* @return*/public string addatesql (final userdo userdo) {return new sql () {{update ("t_user") ؛ set ("gmt_name = now ()") ؛ #{username} ") ؛} حيث (" id = #{id}} ") ؛}}. toString () ؛}}نقاط المعرفة المذكورة في هذه المقالة أساسية نسبيًا. إذا كنت بحاجة إلى فهم متعمق ، فيرجى الرجوع إلى مستند الموقع الرسمي أو قراءة الكود المصدري.
تلخيص:
1. كيف تختار XML والتعليقات التوضيحية؟ يختلف من شخص لآخر. كل شخص لديه عاداتهم الخاصة من الترميز. XML والشروح لها مزاياها وعيوبها. عيوب XML: عندما يتم تغيير سمات النموذج ، يجب تغييرها من DO إلى DAO إلى XML. سيكون من المؤلم التفكير في الأمر ~ XML لديه أيضًا مزايا. إعادة استخدام شظية SQL مريحة وبناء الجملة قابلة للدورة. على عكس التعليقات التوضيحية ، يجب عليك إنشاء بيان ديناميكي وإنشاء فصل. علاوة على ذلك ، عندما يتم الرجوع إلى جزء من SQL أماكن متعددة ، يبدو الرمز زائدًا. في هذا الوقت ، يجب استخدام XML لاستخلاصه واستخدامه معًا. لقد اشتكت من شرح MyBatis ، ألا يكون هذا التعليق غير معروف؟ لا ، MyBatis مناسب للسيناريوهات التي يتم فيها تغيير سمات النموذج غالبًا ، لأنه يمكن دمجها مع الانعكاس و SQL المبني بشكل ديناميكي (يجب تحقيق هراء بحت ، أفكار شخصية ، وسيتم ذلك في يوم آخر). يمكن القول أن مزايا شرح MyBatis تعوض عن أوجه القصور في XML جيدًا. يكمل الاثنان بعضهما البعض ~
ما سبق هو بداية سريعة لشروحات تطوير MyBatis التي قدمها المحرر. آمل أن يكون ذلك مفيدًا للجميع. إذا كان لديك أي أسئلة ، فيرجى ترك رسالة لي وسوف يرد المحرر على الجميع في الوقت المناسب. شكرا جزيلا لدعمكم لموقع wulin.com!