jeecg他的文档中有一个集成达梦数据库的步骤,链接如下 连接达梦数据库 - JeecgBoot 文档中心,但是我按照步骤去操作的时候并没有适配成功,大部分是他的步骤写的不够清楚,没有说明改哪里的文件,下面是我摸索的适配步骤。
jeecg版本:3.5.2
在jeecg-system-start 模块的pom文件中添加
- <dependency>
- <groupId>com.damenggroupId>
- <artifactId>DmJdbcDriver18artifactId>
- <version>1.0version>
- dependency>
- <dependency>
- <groupId>com.damenggroupId>
- <artifactId>DmDialectForHibernateartifactId>
- <version>5.3version>
- dependency>
这两个文件如果下载不下来,可以去达梦数据库的安装位置找一下,在dialect目录下,然后放到本地仓库对应的位置即可。

说明一下:
2.1我这里设置的是多数据源,不需要的把从数据源注释掉就可以了,
2.2 模式名和账户密码aaa,bbb换成自己的账户密码。
2.3 根据jeecg官方的教程改文件,可以参考我改成下面的样子(位置啥的官方文档没有说清楚)
- spring:
- jpa:
- open-in-view: false
- properties:
- hibernate:
- dialect: org.hibernate.dialect.Oracle8iDialect
- datasource:
- druid:
- stat-view-servlet:
- enabled: true
- loginUsername: admin
- loginPassword: 123456
- allow:
- web-stat-filter:
- enabled: true
- #打开多数据源,加上上面的就可以实现多数据源的配置
- dynamic:
- druid:
- filters: stat,slf4j
- # 初始连接数
- initialSize: 5
- validationQuery: SELECT 1 FROM DUAL
- # 最小连接池数量
- minIdle: 5
- # 最大连接池数量
- maxActive: 10
- datasource:
- master:
- url: jdbc:dm://127.0.0.1:52361/?aaa&zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf-8
- username: aaa
- password: aaa
- driverClassName: dm.jdbc.driver.DmDriver
- type: com.alibaba.druid.pool.DruidDataSource
- #在service层用 @DS("db2") 来选择使用从库,否则使用主库
- db2:
- url: jdbc:dm://127.0.0.1:52361/?bbb&zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf-8
- username: bbb
- password: bbb
- driverClassName: dm.jdbc.driver.DmDriver
- type: com.alibaba.druid.pool.DruidDataSource
- ## quartz定时任务,采用数据库方式
- quartz:
- job-store-type: jdbc
- jdbc:
- initialize-schema: never
-
- # autoconfigure:
- # exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure
这样基本上就适配完了,如果你的数据库有些SQL跑不起来,看一下是不是下面两个原因
这个可以通过达梦的官方工具 “达梦数据库配置助手”新建或者修改实例,过程中设置大小写不敏感来解决,如果当前实例已经被使用且不可修改,可以换一个端口新建实例



之后就一直下一步就可以了。
比如mysql的正则表达式,时间函数,编辑距离等函数,虽然其他函数也有,但是函数名或者格式不太一样,这也程序运行就会出错,需要逐个修改,如果不知道对应的是达梦的哪个函数,可以的解决方式有
3.2.1 查看达梦数据库的函数文档


3.2.2 查看Oracle相关函数怎么用的,然后去达梦数据库里面试一下能不能用。虽然不知道达梦数据库怎么实现的,但是很多Oracle的函数在他的里面都可以运行,Oracle毕竟社区比较成熟,能搜到想要的函数