@玛雅牛 你好,想跟你请教个问题:
只使用了hibernate4.2.2,druid1.0.9,找了半天配置,最后的错误是:org.hibernate.HibernateException: Could not instantiate connection provider:com.alibaba.druid.support.hibernate.DruidConnectionProvider
配置如下
<session-factory> <property name="connection.provider_class">com.alibaba.druid.support.hibernate.DruidConnectionProvider</property> <!-- 配置初始化大小、最小、最大 --> <property name="initialSize">1</property> <property name="minIdle">1</property> <property name="maxActive">20</property> <!-- 配置获取连接等待超时的时间 --> <property name="maxWait">60000</property> <!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 --> <property name="timeBetweenEvictionRunsMillis">60000</property> <!-- 配置一个连接在池中最小生存的时间,单位是毫秒 --> <property name="minEvictableIdleTimeMillis">300000</property> <property name="validationQuery">SELECT 'x'</property> <property name="testWhileIdle">true</property> <property name="testOnBorrow">false</property> <property name="testOnReturn">false</property> <!-- 打开PSCache,并且指定每个连接上PSCache的大小 --> <property name="poolPreparedStatements">true</property> <property name="maxPoolPreparedStatementPerConnectionSize">20</property> <!-- 配置监控统计拦截的filters,去掉后监控界面sql无法统计 --> <property name="filters">stat</property> <!-- sessionFactory properties --> <property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property> <property name="connection.url">jdbc:oracle:thin:@10.152.223.51:1521:qybi</property> <property name="connection.username">qybi</property> <property name="connection.password">qybi123</property> <property name="show_sql">false</property> </session-factory>请指导一下,谢谢!
QQ:812229694
Configuration conf = new Configuration().configure();
System.out.println(conf);
SessionFactory factory = conf.buildSessionFactory();
在标注处出错
org.hibernate.cfg.Configuration@1581593 Exception in thread "main" java.lang.NullPointerException at com.alibaba.druid.util.JdbcUtils.getDriverClassName(JdbcUtils.java:354) at com.alibaba.druid.pool.DruidDataSource.init(DruidDataSource.java:577) at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:915) at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:911) at com.alibaba.druid.support.hibernate.DruidConnectionProvider.getConnection(DruidConnectionProvider.java:52) at org.hibernate.engine.jdbc.internal.JdbcServicesImpl$ConnectionProviderJdbcConnectionAccess.obtainConnection(JdbcServicesImpl.java:242) at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:117) at org.hibernate.service.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:75) at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:159) at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:131) at org.hibernate.cfg.Configuration.buildTypeRegistrations(Configuration.java:1797) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1755) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1840) at com.test.GetSession.getSen(GetSession.java:13) at com.test.Test.main(Test.java:49)
请贴出完整的异常堆栈######已补异常信息######
对此不熟,貌似xml中的属性名写错了。driverClass?
######回复 @ldl-1023 : 大部分时间都是用jfinal。ssh很少用了。######你用的都是spring或其他方式######"Druid是根据url前缀来识别DriverClass的,这样使得配置更方便简洁。"
结合JdbcUtils的代码 https://github.com/alibaba/druid/blob/master/src/main/java/com/alibaba/druid/util/JdbcUtils.java 来看, 应该是没有读到hibernate的配置信息才导致的. 可以往这个方向排查看看.
如果还是解决不了, 最好提供一下你的项目目录结构, 以及hibernate的配置文件相关的目录.
######没有 oracle-jdbc的jar包?######如果引入了,看是不是重复了。
如果没有重复,建议你断点到“JdbcUtils.java:354”看它在找哪个class
######你好,你的问题解决了没呢?我也是报这个错误,断点进去和你一样的错,发现是jdbcUrl 的值为null,怎么处理呢 ?######数据库连接信息要放在数据库连接池之前
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。