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