الفرق بين MyBatis و Ibatis:
1. MyBatis يقوم بتنفيذ ربط الواجهة ، مما يجعله أكثر ملاءمة لاستخدام <br /> في ibatis2.x ، نحتاج إلى تحديد ملف رسم الخرائط XML في فئة تنفيذ DAO.
يقوم MyBatis بتنفيذ ربط واجهة DAO وملف رسم الخرائط XML ، ويقوم تلقائيًا بإنشاء التنفيذ المحدد للواجهة لنا ، مما يسهل استخدامه وأكثر ملاءمة.
يمكن القول أن هذا هو التحسن الأكثر أهمية في MyBatis.
يلاحظ:
على الرغم من أن MyBatis يدعم استخدام تكوين التعليقات التوضيحية مباشرة في الواجهة لتبسيط التكوين ،
ومع ذلك ، ينصح بشدة أن لا تزال تستخدم طريقة تكوين XML. بعد كل شيء ، فإن طريقة التكوين للشرح محدودة والرمز غازي للغاية. فقط باستخدام طريقة تكوين XML يمكن أن تنعكس مزايا MyBatis
2. إن تحسين تعيين علاقة الكائن أكثر كفاءة <BR /> أعتقد أن العديد من الأصدقاء الذين يستخدمون IBATIS2.x لا يدركون رسم خرائط العلاقة بين الكائنات من خلال ملف تعيين XML الخاص بـ IBATIS. في الواقع ، ليست هناك حاجة للقيام بذلك ، لأن iBatis2.x يستخدم "استعلام عنق" لإدراك العلاقة بين الكائنات من خلال التجميع المباشر لبيانات الاستعلام ، وتأثيره هو نفس التغليف في DAO أو الخدمة.
ومع ذلك ، فإن هذه الطريقة لديها "مشكلة الاستعلام N+1".
باختصار ، يمكن أن تحدث مشكلة الاستعلام N+1 مثل هذا:
؟ تقوم بتنفيذ عبارة SQL منفصلة للحصول على قائمة النتائج (أي +1).
؟ لكل سجل يتم إرجاعه ، تقوم بتنفيذ عبارة استعلام لتحميل التفاصيل لكل تحميل (أي N).
يمكن أن تتسبب هذه المشكلة في تنفيذ مئات بيانات SQL. هذا عادة ما يكون متوقعا.
في MyBatis ، بالإضافة إلى كونه متوافقًا مع طريقة "الاستعلام" في العنق في Ibatis2.x ، فإنه يوفر أيضًا طريقة "عنق مباشرة" ، والتي تعادل تغليف كائن DTO المطلوب تلقائيًا في الكائن المطلوب من خلال جملة SQL.
للحصول على طرق تنفيذ محددة ، يرجى الرجوع إلى دليل المستخدم الرسمي MyBatis بنفسك ، ولا تصفها هنا.
ومع ذلك ، في الواقع ، فإن الفوائد التي جلبها هذا التحسن محدودة للغاية. نظرًا لأن هذه الطريقة لا تعمل عند استخدام الترحيل ، أو لا يُسمح بمجموعة النتائج من الكائنات المتداخلة بالترحيل. لقد تم تقييد هذا بوضوح في إطار MyBatis (34 سطرًا في org.apache.ibatis.executor.resultset.nestultsultsethandler) ، وهناك العديد من الحالات التي يلزم فيها الترحيل في المشاريع الفعلية ...
إذا كنت تفكر في الأمر بعناية ، فلا يمكن أن يكون رسم الخرائط الفردية من خلال ملفات التكوين ، لأن عدد السجلات التي تم الاستعلام عنها في هذا الوقت لا يساوي حجم كائن الإرجاع الفعلي ، لكنني لا أفهم لماذا لا يُسمح بالتعيين الفردي. ربما يرجع السبب في ذلك إلى وجود حالة خاصة واحدة إلى حد ما ، وعند تصميم الإطار ، لا يعتبر أو يصعب التعامل مع هذه الحالة الخاصة.
3. يستخدم MyBatis تعبيرات قوية تستند إلى OGONL للتخلص من العناصر الأخرى <BR /> الأشخاص الذين يعرفون Struts2 لا ينبغي أن يكونوا على دراية بتعبيرات ognl.
يستخدم MyBatis تعبيرات ognl لتبسيط تعقيد ملفات التكوين وهو أبسط في الاستخدام.
ربما يكون الأمر أكثر اهتمامًا
MyBatis ينفذ الواجهة ملزمة ، مما يجعله أكثر ملاءمة للاستخدام.
يوفر Ibatis/MyBatis 3 ميزة جديدة: التعليق التوضيحي.