Spring Boot MySQL项目转达梦踩坑(持续更新)

发布时间 2024-01-11 09:41:11作者: 糖醋小灰

背景

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