أباتشي إمباير-دي بي
Apache Empire-db هي مكتبة جافا توفر واجهة برمجة تطبيقات عالية المستوى وموجهة للكائنات للوصول إلى أنظمة إدارة قواعد البيانات العلائقية (RDBMS) عبر JDBC . Apache Empire-db مفتوحة المصدر ومتاحة بموجب ترخيص Apache 2.0 من مؤسسة برمجيات Apache .
بالمقارنة مع تقنية ربط الكائنات العلائقية (ORM) أو حلول تخزين البيانات الأخرى مثل Hibernate و iBATIS و TopLink ، لا يستخدم Empire-db ملفات XML أو تعليقات Java التوضيحية لربط كائنات Java البسيطة ( POJO ) بجداول قاعدة البيانات وعروضها وأعمدتها. بدلاً من ذلك، يستخدم Empire-db نموذج كائنات Java لوصف نموذج البيانات الأساسي، وواجهة برمجة تطبيقات (API) تعمل بشكل شبه حصري مع مراجع الكائنات بدلاً من السلاسل النصية .
يهدف Empire-db إلى توفير جودة برمجيات أفضل وسهولة صيانة محسّنة من خلال زيادة أمان وقت الترجمة وتقليل تكرار البيانات الوصفية. بالإضافة إلى ذلك، قد تستفيد التطبيقات من أداء أفضل بفضل التحكم الكامل في عبارات SQL وتنفيذها من قِبل المطور مقارنةً بمعظم حلول ربط OR. [ 1 ]
فوائد رئيسية
تكمن قوة Empire-db الرئيسية في واجهة برمجة التطبيقات (API) الخاصة بها لإنشاء استعلامات SQL ديناميكية لأي عبارات SELECT أو UPDATE أو INSERT أو DELETE، وذلك باستخدام دوال Java التي تشير إلى كائنات النموذج. يوفر هذا أمانًا لأنواع البيانات، ويُغني بشكل شبه كامل عن استخدام السلاسل النصية للأسماء أو التعبيرات في التعليمات البرمجية. بالإضافة إلى ذلك، يتم تحقيق استقلالية نظام إدارة قواعد البيانات (DBMS) من خلال نموذج برنامج تشغيل قابل للتوصيل.
يُحسّن استخدام المراجع إلى كائنات الجداول والأعمدة بشكلٍ ملحوظ سلامة وقت الترجمة، وبالتالي يُقلّل من حجم الاختبارات. ومن الآثار الجانبية الإيجابية، إمكانية استخدام ميزة الإكمال التلقائي للتعليمات البرمجية في بيئة التطوير المتكاملة (IDE) لاستعراض نموذج البيانات، مما يزيد الإنتاجية ويُغني عن الحاجة إلى أدوات خارجية أو إضافات لبيئة التطوير المتكاملة.
علاوة على ذلك، يوفر نموذج الكائنات وصولاً آمناً وسهلاً إلى المعلومات الوصفية لنموذج البيانات، مثل نوع بيانات الحقل، والحد الأقصى لطوله، وما إذا كان إلزامياً، وخيارات محدودة لقيمه. ويمكن للمستخدم توسيع نطاق هذه المعلومات الوصفية، فهي لا تقتصر على البيانات الوصفية المتعلقة بنظام إدارة قواعد البيانات. ويشجع توفر هذه المعلومات على كتابة أكواد أكثر عمومية، ويقضي على التكرار في جميع طبقات التطبيق.
الميزات باختصار
- يؤدي تعريف نموذج البيانات من خلال نموذج كائن جافا إلى الاستغناء عن الحاجة إلى تعلم مخططات XML أو التعليقات التوضيحية، ويسمح بسهولة باعتراضات المستخدم وتوسيعاته.
- معالجة السجلات وتعريف الأوامر بشكل مستقل عن قواعد البيانات العلائقية المحمولة مع دعم لمجموعة متنوعة من قواعد البيانات العلائقية مثل Oracle و Microsoft SQL Server و MySQL و Derby و H2 و HSQLDB (اعتبارًا من الإصدار 2.0.5).
- إنشاء تعريفات البيانات (DDL) لنظام إدارة قواعد البيانات المستهدف من تعريف الكائن، سواء لقاعدة البيانات بأكملها أو للكائنات الفردية مثل الجداول والعروض والأعمدة والعلاقات.
- تتيح واجهة برمجة التطبيقات الآمنة من حيث النوع لإنشاء أوامر SQL ديناميكية، إمكانية بناء عبارات SQL ديناميكيًا باستخدام أساليب واجهة برمجة التطبيقات ومراجع الكائنات فقط بدلاً من السلاسل النصية. يوفر هذا مستوى عالٍ من الأمان من حيث النوع، مما يبسط عملية الاختبار والصيانة.
- تقليل حجم كود جافا والتحكم الفعال في الوصول إلى الحقول والبيانات الوصفية عبر الكائنات الديناميكية كبديل للكائنات البسيطة (POJOs). وهذا يسمح حتى بإجراء تغييرات على نموذج البيانات (DDL) أثناء التشغيل.
- التتبع التلقائي لحالة السجل وتعديل الحقول (المعروف أيضًا باسم "التحقق من عدم وجود تغييرات") لإدراج/تحديث الحقول المعدلة فقط.
- دعم القفل التفاؤلي من خلال عمود الطابع الزمني.
- ليس من الضروري دائمًا التعامل مع كيانات قاعدة البيانات الكاملة. قم بإنشاء استعلامات لتوفير البيانات المطلوبة بالضبط، واحصل على النتيجة، على سبيل المثال، كقائمة من أي نوع من أنواع POJO مع مُعدِّلات الخصائص أو المُنشئات المطابقة.
- مكتبة خفيفة الوزن وسلبية بدون أي إعدادات مسبقة، مما يسمح بالتكامل البسيط مع أي بنية أو إطار عمل.
مثال
كمثال، لنفترض قاعدة بيانات تحتوي على جدولين يسمى الموظفون والأقسام ، والتي يجب استرجاع قائمة الموظفين لها بتنسيق معين، مع قيود معينة وترتيب محدد.
يُفترض أن تكون عبارة SQL المقابلة في Oracle على النحو التالي:
استعلم عن معرف الموظف ( EMPLOYEE_ID) واسم العائلة ( LASTNAME ) أو الاسم الأول ( FIRSTNAME ) وقسم الموظف ( DEPARTMENT) من جدول الموظفين ( EMPLOYEES ) في الجدول t1 ، مع ربطه بجدول الأقسام ( DEPARTMENTS ) في الجدول t2 ، حيث يكون اسم العائلة ( LASTNAME ) يبدأ بحرف كبير ويشبه " Foo%" ، ويكون الموظف متقاعدًا ( RETIRED ) في الجدول t1 . رتب النتائج حسب اسم العائلة ( LASTNAME ) ثم الاسم الأول (FIRSTNAME) .يمكن إنشاء عبارة SQL هذه باستخدام واجهة برمجة تطبيقات الأوامر الخاصة بـ Empire-db باستخدام مراجع نموذج الكائن مثل هذا:
SampleDB db = getDatabase ( ) ; // تعريف اختصارات ( غير ضروري ولكنه مفيد ) SampleDB.Employees EMP = db.EMPLOYEES ; SampleDB.Departments DEP = db.DEPARTMENTS ; // إنشاء كائن أمر DBCommand cmd = db.createCommand ( ) ; // تحديد الأعمدة cmd.select ( EMP.EMPLOYEE_ID ) ; cmd.select ( EMP.LASTNAME.append ( ' , ' ) . append ( EMP.FIRSTNAME ) .as ( ' NAME ' ) ) ; cmd.select ( DEP.DEPARTMENT ) ; // ربط الجداول cmd.join ( EMP.DEPARTMENT_ID , DEP.DEPARTMENT_ID ) ; // تعيين القيود cmd.where ( EMP.LASTNAME.likeUpper ( ' Foo % ' ) ) ; cmd . حيث ( EMP.RETIRED.is ( false ) ) ; // تعيين الترتيب cmd.orderBy ( EMP.LASTNAME ) ; cmd.orderBy ( EMP.FIRSTNAME ) ;لتنفيذ الاستعلام واسترجاع قائمة بـ POJO التي تحتوي على نتيجة الاستعلام، يمكن استخدام الكود التالي:
// تعريف فئة للكائنات المستهدفة public class EmployeeInfo { private int employeeId ; private String name ; private String department ; // دوال الوصول والتعديل لجميع الخصائص // أو مُنشئ عام باستخدام الحقول public get ... public set ... }// استرجاع قائمة الموظفين باستخدام كائن cmd الذي تم إنشاؤه أعلاه DBReader reader = new DBReader (); try { reader.open ( cmd , getConnection ( ) ) ; List <EmployeeInfo> empList = reader.getBeanList ( EmployeeInfo.class ) ; } finally { reader.close ( ) }يدعم Empire-db أيضًا الوصول إلى الحقول من خلال مراجع الكائنات أو الحصول على نتائج الاستعلام بصيغة XML.
تاريخ
تم تطوير Empire-db في الأصل في شركة ESTEAM Software، وهي شركة تطوير برمجيات ألمانية استخدمت Empire-db لتطوير تطبيقات متنوعة لمجموعة متنوعة من الفروع المختلفة.
في يناير 2008، تم جعل Empire-db مفتوح المصدر رسميًا ونشره لأول مرة من خلال SourceForge.net.
في يونيو 2008، قُدِّمَ اقتراحٌ إلى مؤسسة برمجيات أباتشي لجعل مشروع Empire-db مشروعًا ضمن برنامج حاضنات أباتشي. وفي يوليو 2008، قُبِلَ مشروع Empire-db للانضمام إلى برنامج الحاضنات، ونُقِلَت جميع حقوق البرنامج إلى مؤسسة أباتشي.
في أكتوبر 2008، كان Empire-db 2.0.4 هو أول إصدار رسمي من حاضنة Apache مع تغيير جميع أسماء الحزم لتبدأ بـ org.apache.empire.
انظر أيضاً
مراجع
- ↑ "Apache Empire-db" . empire-db.apache.org . تم الاطلاع عليه بتاريخ 21-03-2022 .
روابط خارجية
- مشاريع مؤسسة برمجيات أباتشي
- مكتبات لغة البرمجة جافا
