开发者社区> 问答> 正文

只用hibernate与druid的配置问题:配置无效 

@玛雅牛 你好,想跟你请教个问题:
只使用了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)

展开
收起
kun坤 2020-05-31 19:00:26 879 0
1 条回答
写回答
取消 提交回答
  • 请贴出完整的异常堆栈######已补异常信息###### 对此不熟,貌似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包?######

    引用来自“JacarriChan”的评论

    没有 oracle-jdbc的jar包?

    如果引入了,看是不是重复了。
    如果没有重复,建议你断点到“JdbcUtils.java:354”看它在找哪个class ######你好,你的问题解决了没呢?我也是报这个错误,断点进去和你一样的错,发现是jdbcUrl 的值为null,怎么处理呢 ?###### 数据库连接信息要放在数据库连接池之前

    ######<property name="driverClassName">com.mysql.jdbc.Driver</property>

    <property name="url">

    jdbc:mysql://127.0.0.1:3306/lian?autoReconnect=true&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false

    </property>

    <property name="username">root</property>

    <property name="password">root</property>

    需要配置你的数据连接信息

    2020-05-31 19:00:33
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载