Activiti支持达梦数据库

Activiti支持达梦数据库

1.目的

? Activiti现在支持的数据库包括:

Activiti数据库类型 JDBC URL实例 备注
h2 jdbc:h2:tcp://localhost/activiti 默认配置的数据库
mysql jdbc:mysql://localhost:3306/activitiutoReconnect=true 使用mysql-connector-java驱动测试
oracle jdbc:oracle:thin:@localhost:1521:xe
postgres jdbc:postgresql://localhost:5432/activiti
db2 jdbc:db2://localhost:50000/activiti
mssql jdbc:sqlserver://localhost:1433/activiti

? 随着信创国产化的推进,需要用国产数据库来替换上面的数据库。基于达梦数据库对Oracle的高度兼容,我们选择使用达梦数据库作为替代产品。由于Activiti不支持达梦数据库,所以要进行如下的修改。

2.解决方案

2.1 开发环境

2.1.1 相关软件的版本:

软件名称 版本
Activiti 7.0.1 M6
达梦数据库 8.0
dm.jdbc.driver.DmDriver 8.1.1.88

2.1.2 引入达梦数据库连接驱动包

? 将达梦数据库驱动包“DmJdbcDriver18.jar”文件上传至阿里云私有maven仓库,并通过maven下载引入。

2.1.3 配置数据库连接

? 在activiti.cfg.xml文件中添加一下内容

2.2 java类

? 为了使Activiti可以适配达梦数据库,需要修改其部分源代码。将Activiti中相关的源代码拷贝到工程src目录下,保持包路径不变。具体的修改如下:

2.2.1 在org.activiti.engine.impl.cfg.ProcessEngineConfigurationImpl,增加成员变量。

2.2.2 修改org.activiti.engine.impl.cfg.ProcessEngineConfigurationImpl 类的 getDefaultDatabaseTypeMappings()方法

2.2.3 修改org.activiti.engine.impl.db.DbSqlSessionFactory 类的 initBulkInsertEnabledMap(String databaseType)方法

2.2.4 修改org.activiti.engine.impl.AbstractQuery 类的 addOrder(String column, String sortOrder, NullHandlingOnOrder nullHandlingOnOrder)方法

2.3 资源文件

? Activiti在运行期间还会用的一下资源文件,这些文件中有些也与数据库相关,具体修改如下:

2.3.1 为资源文件创建相应的目录,具体的目录结构如下图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-S33ifGnG-1612670121813)(/Users/zhangzhe/Library/Application Support/typora-user-images/image-20210207112144768.png)]

2.3.2 在create文件件下追加创建数据库表相关的文件。

activiti.dm.create.engine.sql

create table ACT_GE_PROPERTY (    NAME_ NVARCHAR2(64),    VALUE_ NVARCHAR2(300),    REV_ INTEGER,    primary key (NAME_));insert into ACT_GE_PROPERTYvalues ('schema.version', '7.0.0.0', 1

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年1月6日
下一篇 2021年1月6日

相关推荐