在路上

 找回密码
 立即注册
在路上 站点首页 学习 查看内容

扩展Hibernate使用自定义数据库连接池的方法

2016-8-29 13:21| 发布者: zhangjf| 查看: 630| 评论: 0

摘要: 本文实例讲述了扩展Hibernate使用自定义数据库连接池的方法。分享给大家供大家参考,具体如下: 在Hibernate的过程中往往碰到这样的问题:我们现成的产品本来已使用自有的数据库连接池,同时使用Hibernate的话在Hibe ...

本文实例讲述了扩展Hibernate使用自定义数据库连接池的方法。分享给大家供大家参考,具体如下:

在Hibernate的过程中往往碰到这样的问题:我们现成的产品本来已使用自有的数据库连接池,同时使用Hibernate的话在Hibernate配置中也得配置数据库连接信息,这样就需要在两个地方维护数据库连接信息,维护起来感觉相当别扭。

由于我们不是在产品刚开始开发就加入Hibernate的,所以不合适让产品直接使用Hibernate的连接池,只好让Hibernate来使用产品自有的连接池,还好Hibernate已提供了连接池的扩展接口:ConnectionProvider。

Hibernate本身是通过ConnectionProvider接口来实现管理数据库连接的。例如其自带的C3P0ConnectionProvider,ProxoolConnectionProvider等,我们编写一个实现ConnectionProvider接口的类,在Hibernate的配置文件中将相关参数改成该类就OK,相关代码如下:

hibernate.cfg.xml中用以下代码替代之前的数据库连接信息配置:

  1. <!-- 自定义-使用NMS产品的连接池 -->
  2. <property name="hibernate.connection.provider_class">
  3. com.shine.sourcedesk.jbpm.NmsConnectionProvider
  4. </property>
复制代码

实现ConnectionManager接口的类:

  1. package com.shine.sourcedesk.jbpm;
  2. import java.sql.Connection;
  3. import java.sql.SQLException;
  4. import java.util.Properties;
  5. import org.hibernate.HibernateException;
  6. import org.hibernate.connection.ConnectionProvider;
  7. import com.shine.framework.jdbc.ConnectionManager;
  8. /**
  9. * 自定义Hibernate连接池,让Hibernate使用产品的ConnectionManager
  10. * @author JiangKunpeng
  11. *
  12. */
  13. public class NmsConnectionProvider implements ConnectionProvider{
  14. @Override
  15. public void close() throws HibernateException {
  16. }
  17. @Override
  18. public void closeConnection(Connection connection) throws SQLException {
  19. //关闭连接
  20. ConnectionManager.close(connection);
  21. }
  22. @Override
  23. public void configure(Properties properties) throws HibernateException {
  24. }
  25. @Override
  26. public Connection getConnection() throws SQLException {
  27. //使用产品的数据库连接池获取连接
  28. return ConnectionManager.getConnection();
  29. }
  30. @Override
  31. public boolean supportsAggressiveRelease() {
  32. return false;
  33. }
复制代码

希望本文所述对大家基于Hibernate框架的java程序设计有所帮助。

最新评论

小黑屋|在路上 ( 蜀ICP备15035742号-1 

;

GMT+8, 2025-7-7 03:12

Copyright 2015-2025 djqfx

返回顶部