В этой статье описывается, как расширить Hibernate, используя пользовательский пул соединений базы данных. Поделитесь этим для вашей ссылки, следующим образом:
В процессе Hibernate мы часто сталкиваемся с этой проблемой: наши готовые продукты уже используют наш собственный пул соединений базы данных. Если мы используем Hibernate, мы также должны настроить информацию об подключении базы данных в конфигурации Hibernate. Это требует поддержания информации об соединении с базой данных в двух местах, что кажется довольно неловким для поддержания.
Поскольку мы не присоединились к Hibernate в начале разработки продукта, не подходит, чтобы продукт напрямую использовать пул соединений Hibernate, поэтому нам пришлось позволить Hibernate использовать собственный пул соединений продукта. К счастью, Hibernate предоставил интерфейс расширения для пула соединений: ConnectionProvider.
Сам Hibernate использует интерфейс ConnectionProvider для управления подключениями к базе данных. Например, его собственный C3P0ConnectionProvider, ProxoolConnectionProvider и т. Д., Мы пишем класс, который реализует интерфейс ConnectionProvider. В файле конфигурации Hibernate можно изменить соответствующие параметры на этот класс. Соответствующий код выглядит следующим образом:
Следующий код используется для замены предыдущей конфигурации информации об подключении базы данных в hibernate.cfg.xml:
<!-Custom-Пул соединений с использованием продуктов NMS-> <name = "hibernate.connection.provider_class"> com.shine.sourcedesk.jbpm.nmsconnectionprovider </property>
Классы, которые реализуют интерфейс ConnectionManager:
пакет com.shine.sourcedesk.jbpm; импорт java.sql.connection; импорт java.sql.sqlexception; import java.util.properties; импорт org.hibernate.hibernateexception; import org.hibernate.connection.connection -provide; Пул сгибания сгибания, пусть Hibernate использует продукт ConnectionManager * @author jiangkunpeng * */public class nmsconnectionprovider реализует ConnectionProvider {@OverridePublic void close () Throws HibernateException {/@OverridePublic void closeNect ConnectionManager.Close (Connection);}@overridePublic void configure (свойства свойств) бросает hibernateexception {} @OverridePublic Connection getConnection () throws sqlexception {// Использование базы базы данных для базы данных, чтобы получить подключение к подключению. ЛОЖЬ;}Я надеюсь, что описание в этой статье будет полезно для каждого Java -программирования на основе пластинга Hibernate.