أباتشي إيباتيس
iBATIS هو إطار عمل لتخزين البيانات يعمل على أتمتة عملية الربط بين قواعد بيانات SQL والكائنات في Java و.NET وRuby on Rails. في Java، تُعرف الكائنات باسم POJOs ( كائنات Java البسيطة ). يتم فصل عمليات الربط عن منطق التطبيق من خلال تغليف عبارات SQL في ملفات تكوين XML . والنتيجة هي تقليل كبير في حجم التعليمات البرمجية التي يحتاجها المطور للوصول إلى قاعدة بيانات علائقية باستخدام واجهات برمجة تطبيقات منخفضة المستوى مثل JDBC و ODBC .
تتيح أطر عمل أخرى لتخزين البيانات، مثل Hibernate، للمستخدم إنشاء نموذج كائن (بلغة Java مثلاً)، ثم تقوم بإنشاء قاعدة البيانات العلائقية وصيانتها تلقائيًا. أما iBATIS، فيتبع نهجًا معاكسًا: يبدأ المطور بقاعدة بيانات SQL، ويتولى iBATIS أتمتة إنشاء كائنات Java. لكل من النهجين مزايا، ويُعد iBATIS خيارًا مناسبًا عندما لا يملك المطور تحكمًا كاملاً في مخطط قاعدة بيانات SQL. على سبيل المثال، قد يحتاج تطبيق ما إلى الوصول إلى قاعدة بيانات SQL موجودة تستخدمها برامج أخرى، أو الوصول إلى قاعدة بيانات جديدة لا يخضع مخططها لسيطرة مطور التطبيق بشكل كامل، كما هو الحال عندما يقوم فريق متخصص في تصميم قواعد البيانات بإنشاء المخطط وتحسينه بعناية لتحقيق أداء عالٍ.
في 21 مايو 2010، قام فريق التطوير بنسخ الكود وإنشاء مشروع جديد باسم MyBatis ، وبدأ بإصدار التحديثات الجديدة فيه. ونتيجةً لذلك، أصبح مشروع Apache iBATIS غير نشط، ونُقل إلى Apache Attic في يونيو 2010.
الاستخدام
على سبيل المثال، لنفترض وجود جدول قاعدة بيانات باسم PRODUCT (PROD_ID INTEGER , PROD_DESC VARCHAR(64) ) وفئة Java باسم com.example.Product (id: int , description: String ) . لقراءة سجل المنتج الذي يحمل المفتاح PROD_ID في كائن POJO جديد باسم Product ، تتم إضافة التعيين التالي إلى ملف تعيين XML الخاص بـ iBATIS:
<select id= "getProduct" parameterClass= "java.lang.Long" resultClass= "com.example.Product " > حدد PROD_ID كمعرف ، PROD_DESC كوصف من PRODUCT حيث PROD_ID = # القيمة # </select>يمكن بعد ذلك استرداد كائن منتج جافا جديد من قاعدة البيانات للمنتج رقم 123 على النحو التالي:
ProductresultProduct=(Product)sqlMapClient.queryForObject("getProduct",123);In the mapping file example, #value# refers to the long integer value passed into the query. If the parameter is a Java object, then values from properties on that object can be inserted into the query using a similar # notation. For example, if the parameter class is a com.example.Product which has a property called id, then #value# can be replaced with #id#. The sqlMapClient object is an instance of class com.ibatis.sqlmap.client.SqlMapClient.
Availability
The founder of iBATIS has publicly stated his dismay with Java 5, but has continued to release new versions of iBATIS for Java. Versions 2.3.1 and 2.3.2 came out in April 2008, and 2.3.3 in July.
The framework is currently available in Java, .NET, and Ruby (RBatis) versions. The jBati project is a JavaScript ORM inspired by iBATIS.
The Apache iBator tool is closely related: it connects to your database and uses its metadata to generate iBATIS mapping files and Java classes.
History
In 2001 a project called iBATIS was started by Clinton Begin. Originally the focus was on the development of cryptographic software solutions. The first product to be released by iBATIS was Secrets,[1] a personal data encryption and signing tool much like PGP. Secrets was written entirely in Java and was released under an open source license.
That year Microsoft published a paper[2] to demonstrate that its recent .NET 1.0 framework was more productive than Java. For that purpose Microsoft built its own version of Sun's Web "Pet Store", a Web project that Sun had used to show Java best practices (Java BluePrints). Microsoft claimed that .NET was 10 times faster and 4 times more productive than Java.
In 2002 Clinton developed an application called JPetStore[3] to demonstrate that Java could be more productive than .NET and could also do so while achieving a better architecture than was used in the Microsoft implementation.
كان لـ JPetStore 1.0 تأثير كبير [ 4 ] ، وقد اجتذبت طبقة قاعدة البيانات التي استخدمها كلينتون اهتمام المجتمع. وسرعان ما بدأ مشروع iBATIS Database Layer 1.0، الذي يتألف من مكونين: iBATIS DAO و iBATIS SQL Maps.
صدرت النسخة الثانية من iBATIS في يونيو 2004. [ 5 ] وقد مثّلت إعادة تصميم كاملة مع الحفاظ على نفس الميزات. تبرّع كلينتون باسم iBATIS وشفرته البرمجية لمؤسسة برمجيات أباتشي ، وبقي المشروع ضمن المؤسسة لمدة ست سنوات.
في النهاية تم إيقاف استخدام iBATIS DAO، نظرًا لتوافر أطر عمل DAO أفضل، مثل Spring Framework .
في 19 مايو 2010، تم نشر iBATIS 3.0، وفي الوقت نفسه قرر فريق التطوير مواصلة تطوير الإطار في Google Code . [ 6 ] ضمن مشروع جديد يسمى MyBatis .
في 16 يونيو 2010، أعلنت أباتشي عن إيقاف تشغيل iBATIS ونقله إلى Apache Attic.
انظر أيضاً
مراجع
- ↑ أسرار iBATIS
- ↑ شجار قطط في متجر حيوانات أليفة: J2EE ضد .NET
- ↑ "JPetStore 1.0" (ملف PDF) . مؤرشف من النسخة الأصلية (ملف PDF) بتاريخ 21-10-2013 . تم الاطلاع عليه بتاريخ 08-09-2013 .
- ↑ إعلان JPetStore 1.0 على موقع TheServerside.com
- ↑ إعلان iBATIS 2.0
- ↑ فريق مشروع iBATIS ينتقل إلى Google Code
فهرس
- بيجين، كلينتون ؛ براندون جودين؛ لاري ميدورز (17 يناير 2007). iBATIS في العمل ( الطبعة الأولى). مانينغ . ص 384. ISBN 978-1-932394-82-5.
- ريتشاردسون ، كريس (23 يناير 2006). POJOs في العمل ( الطبعة الأولى). مانينغ . ص 456. ISBN 1-932394-58-3.
روابط خارجية
- مؤسسة برمجيات أباتشي
- جافا (لغة برمجة)
- رسم الخرائط بين الكائنات والعلاقات
- أطر عمل الاستمرارية
