Hibernate5.X mysql数据库方言方面的差异

本文探讨了Hibernate不同方言与MySQL数据库引擎的兼容性,包括InnoDB与MyISAM的区别,以及如何选择合适的方言来支持外键、事务等功能。同时,介绍了MySQL55Dialect、MySQL5Dialect和MySQL57Dialect的特性和适用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、org.hibernate.dialect.MySQL55Dialect

推荐使用这个配置,使用的mysql引擎为 InnoDB,自动创建表时,可以创建外键、事物等。

2、org.hibernate.dialect.MySQL5Dialect

对于数据库数据的增删查改都没有问题,就是当类的结构变化后需要DDL更新表结构时出错,提示使用的数据库引擎为engine=MyISAM,MyISAM 不支持外键等,所以报错。

3、org.hibernate.dialect.MySQL57Dialect

这个配置也可以,MySQL57Dialect从MySQL55Dialect继承的,增加了一些新特性,通过源码分析可以看出来MySQL57Dialect是针对mysql5.7.x的版本的,能看出来增加了对json列的支持,和一些时间函数。我实际用的是mysql5.6.x,所以只能用MySQL55Dialect方言

4、org.hibernate.dialect.MySQLInnoDBDialect

这个弃用了。

5、这里要说一个使用idea查看数据库方言的类层次结构方法

在配置文件中按住Ctrl点击具体方言名字,然后打开方言源码后,按F4查看当前类的层次结构,就可以看到有哪些方言可用,然后观察源码或者测试即可。

6、MySQL8Dialect方言,这个是支持mysql8.0的

关于技术细节可用参考下面两篇文章
MySQL存储引擎中的MyISAM和InnoDB区别详解
Hibernate的dialect 方言大全

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值