تصف هذه المقالة كيفية تمديد السبات باستخدام تجمع اتصال قاعدة بيانات مخصص. شاركه للرجوع إليه ، على النحو التالي:
في عملية السبات ، نواجه هذه المشكلة غالبًا: تستخدم منتجاتنا الجاهزة بالفعل تجمع اتصالات قاعدة البيانات الخاص بنا. إذا استخدمنا Hibernate ، فيجب علينا أيضًا تكوين معلومات اتصال قاعدة البيانات في تكوين Hibernate. وهذا يتطلب الحفاظ على معلومات اتصال قاعدة البيانات في مكانين ، والذي يشعر بالحرج الشديد للحفاظ عليه.
نظرًا لأننا لم ننضم إلى السبات في بداية تطوير المنتج ، فليس من المناسب السماح للمنتج باستخدام تجمع اتصالات Hibernate مباشرة ، لذلك كان علينا السماح بسباتي استخدام تجمع الاتصال الخاص بالمنتج. لحسن الحظ ، قدمت Hibernate واجهة تمديد لمجموعة الاتصال: ConnectionProvider.
يستخدم Hibernate نفسه واجهة ConnectionProvider لإدارة اتصالات قاعدة البيانات. على سبيل المثال ، C3P0ConnectionProvider ، ProxoolConnectionProvider ، وما إلى ذلك ، نكتب فئة تنفذ واجهة ConnectionProvider. في ملف تكوين Hibernate ، لا بأس في تغيير المعلمات ذات الصلة إلى هذه الفئة. الرمز ذي الصلة كما يلي:
يتم استخدام الرمز التالي لاستبدال تكوين معلومات اتصال قاعدة البيانات السابقة في hibernate.cfg.xml:
<!-تجمع اتصال مخصص باستخدام منتجات NMS-> <property name = "hibernate.connection.provider_class"> com.sourcedesk.jbpm.nmsconnectionprovider </splyment>
الفصول التي تنفذ واجهة ConnectionManager:
package com.shine.sourcedesk.jbpm ؛ استيراد java.sql.connection ؛ استيراد java.sql.sqlexception ؛ استيراد java.util.properties ؛ import org.hibernate.hibernateException ؛ تخصيص تجمع اتصالات Hibernate ، دع Hibernate تستخدم ConnectionManmer للمنتج * Author Jiangkunpeng * */فئة عامة NMSConnectionProvider تنفذ ConnectionProvider {@connection) ConnectionManager.Close (اتصال) ؛}@@Overridepublic void تكوين (خصائص خصائص) يلقي HibernateException {}@Overridepublic Connection getConnection () يلقي sqlexception {// use the productiesh connection {productiverease@expressagearease@expressagearease@expressagearees staredSaggressing ()آمل أن يكون الوصف في هذه المقالة مفيدًا لبرمجة Java للجميع استنادًا إلى إطار السبات.