如何配置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.dbcp
和hibernate.connection
属性。
// Other DBCP properties here com.my.app.model
org.hibernate.dialect.MySQLDialect true update
只需将dataSource
属性作为依赖项和done完成添加到AnnotationSessionFactoryBean
。 请注意,您不需要configurationClass
属性,因为它已经是基于注释的。
我不建议使用Commons-DBCP作为数据源,而是将HikariCP看作是更好的数据源实现。
有关使用Spring集成/配置Hibernate的更多信息,请参阅“参考指南”的这一部分 。
- JPA / Hibernate静态元模型属性未填充 – NullPointerException
- 如何将select表格中的多个值插入数据库?
- PostgreSQL + Hibernate + Spring自动创建数据库
- org.hibernate.MappingNotFoundException:resource:*找不到hbm.xml
- 用于JPA回调的Hibernate事件侦听器
- 提高了PostgreSQL查询性能,并且已经连接了1亿个数据
- Hibernate错误:org.hibernate.NonUniqueObjectException:具有相同标识符值的另一个对象已与会话关联
- 使用jpa和hibernate在orm.xml中定义命名查询
- 没有为jdbc找到合适的驱动程序:mysql:// localhost:3306 / test