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进行处理,非常感谢!