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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!