Access to DialectResolutionInfo cannot be null when ‘hibernate.dialect‘ not set

最近在学习Hibernate,看到网上说这个框架是旧的也有的说有的公司是要求学的,我感觉既然是一个框架就有它存在的意义,还是应该学的,于是就开始遇到错误了。上述的错误是我打算向数据库中插入数据遇到的,具体代码如下:

Configuration configuration = new Configuration();
        SessionFactory sessionFactory = configuration.buildSessionFactory();
        Session session = sessionFactory.openSession();
        People people =  new People();
        people.setName("账单");
        people.setMoney(1000.2);
        session.save(people);
        session.beginTransaction().commit();
        session.close();

这是完整的代码。但是就是报标题所述错误。

这是报错的完整截图。

在网上我搜的说是因为Hibernate方言设置错误,但是我是配置了的。

<property name="dialect">org.hibernate.dialect.MySQL5Dialect</property>

因为看到了jdbc字眼我还查了一下,发现有的网友还真遇到过,说是connection.username、connection.password、connection.driver_class、connection.url的错误但这些都没错:

 <property name="hibernate.connection.username">root</property>
        <property name="hibernate.connection.password">额,请输入自己的密码</property>
        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/textone?useUnicode=true&amp;characterEncoding=UTF-8&amp;serverTimezone=Hongkong</property>

 这些都是没问题的,还有就是serverTimezone是必须设置的要不然会报错。我用的驱动是8.0.19版本比较高,但是当我用5.0的就算不加上serverTimezone也是可以的,这个大家也应该注意一下。

最后解决方法:

 SessionFactory sessionFactory = configuration.configure().buildSessionFactory();

这句话中新加了configure()方法 就可以了,此方法会默认去查找.cfg.xml后缀文件。

文章的前半部分其实整体上对问题的解决并没多大用处,但这个是我解决标题错误的过程,可能有些啰嗦,但写这篇文章也是更好的提醒自己,更好的加深印象,大家别嫌啰嗦。

大家加油!!!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值