Hibernate ProXool关于hibernate.proxool.existing_pool设值问题

今天在使用hibernate用proxool连接池的时候出了一些问题
具体问题是当不通过web对数据库进行操作时,会提示 Unable to open JDBC connection for schema management target
例如用junit或者main方法去执行数据库操作时,就会出现以下错误
Exception in thread "main" org.hibernate.tool.schema.spi.SchemaManagementException: Unable to open JDBC connection for schema management target
at org.hibernate.tool.schema.internal.TargetDatabaseImpl.prepare(TargetDatabaseImpl.java:42)
at org.hibernate.tool.schema.internal.SchemaMigratorImpl.doMigration(SchemaMigratorImpl.java:57)
at org.hibernate.tool.hbm2ddl.SchemaUpdate.execute(SchemaUpdate.java:134)
at org.hibernate.tool.hbm2ddl.SchemaUpdate.execute(SchemaUpdate.java:101)
at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:472)
at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:444)
at org.hibernate.boot.internal.MetadataImpl.buildSessionFactory(MetadataImpl.java:170)
at com.express.util.HibernateUtil.getSessionFactory(HibernateUtil.java:31)
at com.express.util.HibernateUtil.openSession(HibernateUtil.java:47)
at InsertOrder.main(InsertOrder.java:13)

Caused by: java.sql.SQLException: No suitable driver found for proxool.proxool
at java.sql.DriverManager.getConnection(DriverManager.java:689)
at java.sql.DriverManager.getConnection(DriverManager.java:270)
at org.hibernate.proxool.internal.ProxoolConnectionProvider.getConnection(ProxoolConnectionProvider.java:69)
at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess.obtainConnection(JdbcEnvironmentInitiator.java:180)
at org.hibernate.tool.schema.internal.TargetDatabaseImpl.prepare(TargetDatabaseImpl.java:38)
… 9 more

经过多次修改和测试,最终发现原因是在设置
hibernate.proxool.existing_pool的值出了一些冲突,此值设为 false,当 hibernate 开始被调用时,就会初始化 proxool,进行数据库连接等操作
而设为true时则会使用已有的proxool。当使用junit或者main方法去执行数据库操作时,因为这些操作并没有经过ServletConfigurator的监听,所以并没有初始化proxool,导致没有数据库连接的操作,以致程序出错。
以上为个人理解,如有错误,可以评论交流

2016.10.15
今天将项目部署到linux上,发现数据库连接依旧出现这个错误,当我将hibernate.proxool.existing_pool设置为false时问题得到解决,具体原因还不了解,暂时先这样
ps:windos设置hibernate.proxool.existing_pool为true
linux设置hibernate.proxool.existing_pool为false

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值