1. 下载安装达梦数据库Windows本地测试环境
2. 数据迁移
2.1 达梦创建表空间
新建表空间:
参数:
文件路径填写对应的DBF格式文件,比如数据库名字为test,那么可以在D盘创建一个名字为test.DBF的文件,其他保持不变
新建用户
填写用户名,密码,并将表空间选择刚才创建的表空间,索引选项和表空间保持一致
所属角色和系统权限可以全选
注意: 创建角色时可能会出现错误:点击确定后再此修改此用户的系统权限即可,确保能赋给该用户系统权限 👇
这时右键刷新就可发现出现了对应表空间的模式 ↓↓↓
2.2 数据迁移开始:
新建工程:名字随意
新建迁移 名字随意
点击下一步
选择 MySQL ===> DM ,点击下一步
填写MySQL数据库对应的密码,点击测试
注意:在此处可能出现数据库链接失败的情况:
解决方法: 尝试在点击自定义URL,在最后拼接上 &useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true
若不行,尝试使用本地驱动包 👇
填写达梦数据库口令(密码):
配置迁移选项,在这一步可以勾选 ◻保持对象名大小写,避免迁移之后数据库表名全部成为大写的情况
选择对应的数据库,并配置目的模式名称,取消掉创建模式,剩余选项根据实际情况选择
选择需要迁移的表格
点击完成
注意:若迁移过程中有约束或索引迁移失败,需要手动去维护索引信息 👇
3 JAVA (SpringBoot) 配置
3.1 添加jar包
DmJdbcDriver18.jarhttps://download.csdn.net/download/LXD_CSDN/88515655?spm=1001.2014.3001.5501
3.2 填写资源引用
systemPath标签请填写你放置对应jar包的位置
<!--达梦数据库驱动-->
<dependency>
<groupId>com.dm</groupId>
<artifactId>DmJdbcDriver18</artifactId>
<version>18</version>
<scope>system</scope>
<systemPath>${project.basedir}/src/main/resources/lib/DmJdbcDriver18.jar</systemPath>
</dependency>
配置达梦数据源:
# 达梦数据源
spring:
datasource:
url: jdbc:dm://127.0.0.1:5236?schema=TEST
username: TEST
password: FAAVDACDSFAF
driver-class-name: dm.jdbc.driver.DmDriver
# PageHelper分页插件
pagehelper:
helperDialect: oracle
supportMethodsArguments: true
params: count=countSql
此时,就可以启动项目,修改报错的SQL语句了
4. 注意事项
在这里记录几个SQL报错的点:
4.1 distinct 与 order by 的不兼容问题
例如: SQL语句: select distinct username from student order by age
可能报错: ORDER BY项不在DISTINCT查询项中
解决方案
运行语句: ALTER SYSTEM SET 'COMPATIBLE_MODE'=4 SPFILE;
进入主页:
点击DM服务查看器
重启实例
4.2 `号在达梦中不合法
在MySQL中: ` 这个符号常用在数据库的表名,列名的标注,但是在大梦中此符号不合法,注意删除
4.3 数据类型的判等问题
在mysql中,varchar类型的值, 在sql书写的where条件中可以与 数值型类型比较
例: select username from student where username = 123
达梦中必须在123上加上单引号
例: select username from student where username = '123'
int类型的值可以当作布尔类型的值使用
mysql中假如有一字段 del_flag 为 tinyint类型 为1表示正常,0为删除,sql可以写为
例: select username from student where del_flag
达梦中则需要写上判等条件
例: select username from student where del_flag = 1
相似的还datetine 在mysql中可以与空字符串判断,达梦中则不可以
4.4 dbType异常问题
在项目启动过程中,若使用了dynamic 动态数据源,可以修改
spring.dynamic.database.druid.filters = stat