如何配置Hibernate,Spring和Apache dbcp用于连接池?

我在集成Spring,Hibernate和Apache DBCP时遇到了问题。 我从这里使用过DBCPConnectionProvider

我上面说的有以下xml配置。

      com.my.app.model      org.hibernate.dialect.MySQLDialect true update com.mysql.jdbc.Driver jdbc:mysql://localhost:3306/app foo bar org.hibernate.connection.DBCPConnectionProvider  8 20 5 0 10000 180000 180000 true true select 1       

当数据库模式即app为空时,将在mysql中创建两个表。 但是我在我提到的DBCPConnectionProvider的getConnection()方法中得到了NullPointerException 。 这意味着dataSource没有实例化。 我想我已经在xml中配置了所有内容。 我错过了什么 如何使用Spring和Hibernate配置DBCP 1.4版? 请提供您的见解。

这是堆栈跟踪:

 Caused by: java.lang.NullPointerException at org.hibernate.connection.DBCPConnectionProvider.getConnection(DBCPConnectionProvider.java:209) at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:417) at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:144) at org.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:119) at org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:57) at org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1326) at org.springframework.orm.hibernate3.HibernateTransactionManager.doBegin(HibernateTransactionManager.java:555) ... 82 more 

不要那样做。 配置要在Spring和Hibernate中使用的数据源。 抛弃hibernate.dbcphibernate.connection属性。

      // Other DBCP properties here     com.my.app.model     org.hibernate.dialect.MySQLDialect true update    

只需将dataSource属性作为依赖项和done完成添加到AnnotationSessionFactoryBean 。 请注意,您不需要configurationClass属性,因为它已经是基于注释的。

我不建议使用Commons-DBCP作为数据源,而是将HikariCP看作是更好的数据源实现。

有关使用Spring集成/配置Hibernate的更多信息,请参阅“参考指南”的这一部分 。