Spring Boot MySQL项目转达梦踩坑(持续更新)
背景
Spring Boot 2 + MyBatis + MyBatis-Plus的后端框架,原本用MySQL写了大部分功能,突然通知要改用国产数据库,最终选择了达梦。
注意事项
达梦数据库新建实例时,记得大小写敏感是否需要开启,否则实例新建完成后无法再次修改,另外Mysql兼容性考虑是否需要开启,此处忽略COMPATIBLE_MODE = 4(兼容MYSQL语法)的情况,按需要修改达梦语法来看。
修改内容
在本来的POM文件中增加达梦数据库驱动依赖
<!--达梦数据库驱动--> <dependency> <groupId>com.dameng</groupId> <artifactId>DmJdbcDriver18</artifactId> <version>8.1.3.62</version> </dependency>
修改yml配置文件中的数据库连接语句和驱动名称
datasource:
driver-class-name: dm.jdbc.driver.DmDriver
url: jdbc:dm://127.0.10.1:5236/database
username: username
password: password
修改SQL
注意:开启兼容模式的话,代码内自己写的SQL基本就无需修改了。
先列举几个不开启兼容模式下,本项目遇到最多的问题。
Group By
MySQL高版本默认也会开启ONLY_FULL_GROUP_BY,但是提供了关闭的参数,达梦这点应该和Oracle类似,必须实现出现在select字段后面的只能是group by后面的分组字段,或使用聚合函数包裹着的字段
关键字
关键字和MySQL存在差异,如果有这种情况,需要修改对应的表字段或SQL语句
别名
这一点暂时不确定,但是字段别名似乎无法用在where条件后,如果子查询则可以在主查询的where后作为条件
DATE_FORMAT
DATE_FORMAT不支持,使用TO_DATE