遇到java.lang.UnsupportedOperationException: The application must supply JDBC connections的一个解决方法

今天在学习配置Hibernate的过程中,发现一个连接Mysql的错误,网上的解答基本都没有解决问题,最后是我自己找到解决方案的

我这边的环境是:

        JAVA:8

        hibernate-core:5.6.15.Final

        mysql-connector-java:8.0.19

Hibernate初始化源代码:   


        //创建Configuration
        Configuration configuration = new Configuration();

        //获取SessionFactory
        SessionFactory sessionFactory = configuration.buildSessionFactory();

        Session session = sessionFactory.openSession();

在创建SessionFactory的时候报错如下:

java.lang.UnsupportedOperationException: The application must supply JDBC connections

Exception in thread "main" org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]

Caused by: org.hibernate.HibernateException: Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not set

报错的意思是Mysql服务器连接出错,Mysql的方言没有定义

一开始我也是在方言这里着手,做了很多尝试全部都没有效果,然后痛定思痛,发现一个细节很奇怪,明明我的hibernate.cfg.xml中对dialect是有定义的,为什么报错提示dialect的设定为null?说明我的xml设定根本没有起效。

为了进一步验证我的猜想,我把hibernate.cfg.xml改成了123.cfg.xml ,结果报错一模一样,我就断定,是hibernate.cfg.xml文件没有被Hibernate加载导致的,解决方案也非常简单:

就是在Hibernate初始化的时候,指定hibernate.cfg.xml的文件名

        //创建Configuration
        Configuration configuration = new Configuration().configure("hibernate.cfg.xml");

        //获取SessionFactory
        SessionFactory sessionFactory = configuration.buildSessionFactory();

        Session session = sessionFactory.openSession();

然后问题就解决了,希望帮到遇到同样问题的朋友

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值