سؤال

وأنا أعمل على مشروع JBJF على سورس، ونحن نريد لتحسين الوصول إلى قاعدة البيانات لهذا الإطار. حاليا، فإنه من شبه مرنة، ولكن يتم وصول على مستوى العمل.

ونود أن الإعداد واجهة بسيطة من نوع ما هو عام في الطبيعة ويمكن استضافة الوصول إلى قاعدة البيانات من / JBJF. وهكذا، والطبقات الإطار لا يهمني أي نوع من قاعدة البيانات، وأنها مجرد استدعاء أسلوب مثل getConnection () والكائن java.sql.Connection يعود.

وأنا أتساءل ماذا سيكون أكثر ملاءمة، وطبقة DAO نموذجية مع واجهة واحدة أو بنية نوع البرنامج المساعد حيث أننا تكوين خدمة قاعدة البيانات في ملف XML وإطار بتحميل البرنامج المساعد (ق) عندما يبدأ العمل.

وتيا،

وadym

هل كانت مفيدة؟

المحلول

ولقد بدأت أعتقد أن السبات قد حصلت كبيرة جدا ومنتفخة، ولكن أنا قد عملت مؤخرا على مشروع باستخدام أحدث إصدار 3.5 واستخدام JPA وأنها قد نحف بالتأكيد عليه وجعله أفضل بكثير من بعض الإصدارات 3.X أخرى. أود أن أوصى JPA باستخدام السبات: -)

واحدة من أشياء عظيمة عن هذا النهج هو كيف السبات هو جيد في التعامل مع العديد من اللهجات قاعدة بيانات مختلفة. يعمل لدينا التطبيق على الخلية، H2، وسيكلسرفير مع أي تعديلات (وربما من شأنه أن يتعارض فقط على قواعد البيانات الرئيسية الأخرى أيضا).

نصائح أخرى

وماذا عن خلاصة كل ذلك بعيدا واستخدام JPA

وانه من الصعب القول من دون معرفة التفاصيل، ولكن بصفة عامة، وأود أن لا يكتب إطار بلدي وبدلا من استخدام السبات أو أداة ORM مماثلة. بالفعل حددت XML لكائنات رسم الجداول والظهر، ويمكن بسهولة مبادلة داخل / خارج تطبيقات قواعد البيانات المختلفة، وعموما هو أداة عظيمة لممارسة هذا النوع من الشيء.

والخيارين لك قائمة لا يستبعد بعضها بعضا. هل يمكن أن يكون DAO / طبقة مستودع التي يمكنك الوصول إليها عبر بعض واجهة / API، في حين يتم حقن تطبيقات ملموسة في وقت التشغيل لتلبية التبعيات الخاصة بك.

وعلى سبيل المثال، كتابة <م> WidgetRepository واجهة الذي يحدد جزءا من القطعة API الوصول إلى البيانات الخاصة بك. يمكنك ثم توفير <م> FileSystemWidgetRepository ، <م> HibernateWidgetRepository ، <م> XmlWidgetRepository ، <م> JpaWidgetRepository وغيرها والتي تنفذ واجهة الخاص بك.

والقاعدة العامة أن يكون لاستخدام يصل إلى مستوى من التجريد كما يمكنك في حين لا يزال الوفاء الاحتياجات الخاصة بك. في قائمة سبيل المثال أعطى، فإن مستودع مقرها النقابة، أن يكون على أعلى مستوى لأنه يجرد حتى إطار ORM.

وبعد ذلك يمكنك الحفاظ على WidgetRepository مرجع في الأشياء الخاصة بك التي تستفيد منه. كود فقط ضد هذه الواجهة. وبعد ذلك، وضعت في مكان التبعية حقن إطار مثل <وأ href = "HTTP: // شبكة الاتصالات العالمية .springsource.org / عن "يختلط =" نوفولو noreferrer "> الربيع ، والتي سوف حقن الخرسانة <م> WidgetRepository التنفيذ في وقت التشغيل استنادا إلى بعض التكوين XML أو السيارات الأسلاك الآلية.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top