Mysql项目替换达梦数据库的经历——3.springboot链接达梦数据库以及注意事项和问题
在项目中注释掉原来的mysql,添加达梦数据的jdbc的链接方式pom文件中添加配置<dependency><groupId>dm.jdbc</groupId><artifactId>Dm7JdbcDriver18</artifactId><version>1.8.0</version><sco
在项目中注释掉原来的mysql,添加达梦数据的jdbc的链接方式
pom文件中添加配置
<dependency>
<groupId>dm.jdbc</groupId>
<artifactId>Dm7JdbcDriver18</artifactId>
<version>1.8.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/libs/Dm7JdbcDriver18.jar</systemPath>
</dependency>
达梦驱动包放在项目libs下了
执行maven命令把DM驱动包安装到自己的maven仓库(路径改成自己)
mvn install:install-file -DgroupId=com.dm -DartifactId=DmJdbcDriver -Dversion=1.8.0 -Dpackaging=jar -Dfile=C:\Users\CHANG\Desktop\DmJdbcDriver18\DmJdbcDriver18.jar
MySQL适配达梦数据库注意事项
-
问题说明:达梦数据库jdbc驱动无法下载
现象描述: 在pom文件里配置了,大多数服务器里没有相应的jar包,因此没法自动下载
解决方法: 手动将相应jar包放到仓库里 -
问题说明:达梦数据库jdbc驱动版本
现象描述: 使用 低版本的驱动,在sql语句上的写法可能会不同,例如查询时要加上模式名等
解决方法: 使用下面这个版本驱动,sql语句大部分和mysql一样
<dependency>
<groupId>com.dm</groupId>
<artifactId>jdbc</artifactId>
<version>1.8</version>
</dependency>
- 问题说明:hibernate方言驱动
现象描述: 程序中用到了hibernate,需要在配置文件里手动指定hibernate方言的驱动,否则启动会报错
解决方法: 配置文件中的配置
spring. jpa.properties.hibernate=dialect: org.hibernate.dialect.DmDialect
使用的hibernate驱动版本,这个驱动也需要手动下载添加
<dependency>
<groupId>com.dameng</groupId>
<artifactId>DmDialect-for-hibernate5.3</artifactId>
<version>8.1.0.157</version>
</dependency>
-
问题说明:达梦不支持mysql默认时间函数
现象描述: 使用达梦数据库字段的迁移工具,从mysql迁移数据库到达梦里时,如果mysql里表的时间字段设置了默认值,使用的是CURRENT_TIMESTAMP函数,在达梦8里迁移会报错,达梦7可正常迁移
解决方法: 先将mysql中的表的默认值去掉,把表结构导过去之后,再在达梦中执行语句alter table 表名 modify 字段名 default sysdate -
问题说明:达梦数据库不支持LAST_INSERT_ID()
现象描述: 在mysql里新增数据,需要返回刚新增数据的自增主键值,在mybatis里按如下写法
<selectKey resultType="java.lang.Long" keyProperty="id" order="AFTER">
select LAST_INSERT_ID()
</selectKey>
达梦数据库不支持上述写法
解决方法: 在达梦数据库中创建序列
CREATE SEQUENCE config_id_seq INCREMENT BY 1 START WITH 1
将mybatis里的写法换成
<selectKey keyColumn="id" resultType="long" keyProperty="id" order="BEFORE">
SELECT config_id_seq.nextval as id from dual
</selectKey>
-
问题说明: mysql表字段 与达梦数据库关键字冲突
现象描述: mysql里的表字段,取的名字正好是达梦数据的关键字,那么在达梦数据库里使用时,会报错,例如comment是达梦数据库的关键字,mysql里有表的字段取了comment,在mybatis里执行包含comment的查询,新增等语句时会报错,下面这个语句就会报错,因为包含comment
解决方法: 将名字为关键字的表字段换个名字,然后把xml里的sql语句相关字段名字都换了 -
问题说明:达梦数据库不支持某些mybatis字符串的拼接写法
现象描述: mybatis里"%"#{name}"%"这种写法达梦数据库会报错
解决方法: 使用函数CONCAT(’%’,#{name},’%’),双引号变成单引号
更多推荐
所有评论(0)