1、JEP5国产化适配
说明:此章节仅针对以JEP5为基础开发的项目,目前已测试华夏项目
环境准备:
数据库:Oracle11 =》 达梦8
Java: JDK1.8、openJDK8
开发工具:eclipse
1.1 、Oracle11迁移达梦8
1.1.1、安装DM8数据库,参考官方安装文档。
1.1.2、DM8新建用户,参考官方文档,给用户DBA权限。
1.1.3、迁移数据,在DM8安装目录tool下有“DM数据迁移工具”,可轻松将Oracle、MySQL、DB2等主流数据库数据迁移到DM库。
1.1.4、迁移过程中,需要注意有主外键的表,可能存在迁移失败,需要手动处理。
2、添加数据库驱动
2.1 在安装目录drivers 下可以找到所需要的驱动,需要将如下驱动添加到项目中。
DmJdbcDriver18.jar :达梦数据库驱动
DmDialect-for-hibernate5.0.jar:hibernate5.0 -- 5.2 环境
DmDictionary.jar :openjpa1.2:方言包,对应 Jdk1.6及以上环境
dmjooq-dialect-3.12.3.jar:jooq方言包,对应 Jdk1.8及以上环境
dm8-oracle-jdbc16-wrapper.jar:oracle 到达梦的JDBC驱动桥接,应用中如果使用了非标准的oracle JDBC特有的对象,无需修改应用代码,可以桥接到达梦的JDBC连接达梦数据库,对应 Jdk1.6及以上环境
DmHibernateSpatial-1.1.jar:hibernate spatial方言包,对应hibernate spatial 1.1环境,对应 Jdk1.5及以上环境
gt-dameng-17.1.jar:GeoTools 17.1环境方言包,对应 Jdk1.8及以上环境
3、jdbc.properties文件修改
jdbc.driverClassName=dm.jdbc.driver.DmDriver #数据库驱动
jdbc.url=jdbc:dm://10.114.150.126:5236 #数据库ID和端口
jdbc.username=RISKMON #数据库用户名
jdbc.password=123456789 #数据库密码
hibernate.dialect=org.hibernate.dialect.DmDialect #hibernate达梦数据库方言
hibernate.default_schema=RISKMON #达梦数据库模式
4、工作流,需要修改源码
4.1、在org.activiti.engine.impl.cfg.ProcessEngineConfigurationImpl.java中
#修改getDefaultDatabaseTypeMappings()方法,增加如下代码:
databaseTypeMappings.setProperty("DM DBMS", "dm");
4.2 在org.activiti.engine.impl.db.DbSqlSessionFactory.java中
#修改static{},增加如下代码
// dm
databaseSpecificLimitBeforeStatements.put("dm", "");
databaseSpecificLimitAfterStatements.put("dm", "LIMIT #{maxResults} OFFSET #{firstResult}");
databaseSpecificLimitBetweenStatements.put("dm", "");
databaseOuterJoinLimitBetweenStatements.put("dm", "");
databaseSpecificOrderByStatements.put("dm", defaultOrderBy);
addDatabaseSpecificStatement("dm", "selectExclusiveJobsToExecute", "selectExclusiveJobsToExecute_integerBoolean");
5、Birt 报表
修改报表数据源:
<property name="odaDriverClass">dm.jdbc.driver.DmDriver</property>
<property name="odaURL">jdbc:dm://10.114.150.126:5236</property>
<property name="odaUser">HXORM</property>
<encrypted-property name="odaPassword" encryptionID="base64">MTIzNDU2Nzg5</encrypted-property>
6、不支持的数据库语法
暂时未发现
二、iJEP6.x国产化适配
说明:此章节仅针对以iJEP6.x为基础开发的项目,目前已测试分布式平台
环境准备:
数据库:MySQL5.7 =》 达梦8
Java: JDK1.8、openJDK8
开发工具:IDEA
1.1 、MySQL5.7 迁移达梦8
1.1.1、安装DM8数据库,参考官方安装文档。
1.1.2、DM8新建用户,参考官方文档,给用户DBA权限。
1.1.3、迁移数据,在DM8安装目录tool下有“DM数据迁移工具”,可轻松将Oracle、MySQL、DB2等主流数据库数据迁移到DM库。
2、添加数据库驱动
2.1 将达梦数据库驱动上传到Nexus私服
DmJdbcDriver18.jar :达梦数据库驱动
groupId:com.dm
artifactId:DmJdbcDriver
version: 1.8.0
2.2 在ijep-service-parent下的pom.xml文件中添加如下依赖
在具体的微服务中也需要引入如下依赖
<dependency>
<groupId>com.dm</groupId>
<artifactId>DmJdbcDriver</artifactId>
<version>1.8.0</version>
</dependency>
3、yml配置文件修改
spring:
datasource:
driver-class-name: dm.jdbc.driver.DmDriver #达梦数据库驱动
url: jdbc:dm://localhost:5236/IJEP?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf-8
username: IJEP
password: 123456789
4、Mybatis修改
4.1 JepOrmAutoConfiguration.java 增加DM DBMS驱动名称
@Bean
public DatabaseIdProvider getDatabaseIdProvider()
{
DatabaseIdProvider dip = new VendorDatabaseIdProvider();
Properties props = new Properties();
props.put("DB2", "db2");
props.put("Oracle", "oracle");
props.put("MySQL", "mysql");
props.put("DM DBMS", "mysql");
dip.setProperties(props);
return dip;
}
注:DM DBMS 可以采用MySQL适配或者oracle,因为平台同时兼容oracle和MySQL。
5、不支持的数据库语法
自动生成ID:select uuid(); 可使用oracle语法: select sys_guid() from dual ;