天天看点

Camunda如何适配国产数据库达梦

camunda流程引擎官方支持的数据库有:MySQL 、MariaDB 、Oracle 、DB2 、PostgreSQL 、SQL Server、H2。对于其他类型的数据库如何支持,尤其是国产数据库的支持,下面以达梦数据库为例进行介绍。对于其他国产数据库如人大金仓、神州通用等也是同样的修改方法,只是需要注意一下对应数据库的方言即可。

在maven工程的Resources目录下建lib目录,放入达梦数据库驱动包Dm7JdbcDriver17.jar,并配置maven为本地引用

dm.jdbc.driver.DmDriver

jdbc

system

${project.basedir}/src/main/resources/lib/Dm7JdbcDriver17.jar

url: jdbc:dm://127.0.0.1:5236

username: oa

password: 12345678aA

driver-class-name: dm.jdbc.driver.DmDriver

在org.camunda.bpm.engine.impl.cfg.ProcessEngineConfigurationImpl类的getDefaultDatabaseTypeMappings方法里增加

databaseTypeMappings.setProperty(“DM DBMS”, “dm”);

org.camunda.bpm.engine.impl.db.sql.DbSqlSessionFactory类里增加对达梦数据库的语法解析。

public static final String DMDBMS = “dm”;//达梦数据库

public static final String[] SUPPORTED_DATABASES = {MSSQL, DB2, ORACLE, H2, MYSQL, POSTGRES, MARIADB, DMDBMS};

并在static方法里增加:

如果工程中使用的是阿里巴巴的druid连接池,可能会报如下错误:

Cause: java.lang.IllegalStateException: dbType not support : dm

需要把sql防火墙等功能关闭掉即解决该问题:

spring.datasource.filters=stat,wall,log4j

把这个配置里的wall去掉。

专注云原生、低代码、流程引擎研发和应用。免费体验环境:http://www.yunchengxc.com