天天看點

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