本教程所使用的环境:
框架 | 版本 |
---|---|
jdk | 11.0.2 |
spring boot | 2.1.8.RELEASE |
spring activiti | 7.1.0.M2 |
达蒙数据库 | DM8-win-32 |
操作系统 | windows10 |
整合代码三步曲:
第一,导包
以下是pom的代码,其中要导入2个达梦的包:
DmDialect-for-hibernate5.3.jar(达梦数据库sql语法包)
DmJdbcDriver18.jar(达梦数据库驱动程序)
可以使用maven下载,但是maven下载不太稳定,所有我也把这些包上传了,驱动包和方言包在文章下载地址:
https://download.csdn.net/download/u011684553/18839032
注意,前往别选错版本,否则无法运行,把这两个包放在项目的lib文件夹里面,在pom.xml引入它们。
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.8.RELEASE</version>
<relativePath />
</parent>
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>11</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<!--注意:只有这个版本的hibernate兼容达梦数据库 -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.3.18.Final</version>
</dependency>
<dependency>
<groupId>DmDialect.dialect</groupId>
<artifactId>DmDialect</artifactId>
<version>5.3.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/DmDialect-for-hibernate5.3.jar</systemPath>
</dependency>
<dependency>
<groupId>DmJdbcDriver</groupId>
<artifactId>DmJdbcDriver</artifactId>
<version>1.8.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/DmJdbcDriver18.jar</systemPath>
</dependency>
<!-- 工作流 start-->
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-spring-boot-starter</artifactId>
</dependency>
<!--工作流 end-->
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.activiti.dependencies</groupId>
<artifactId>activiti-dependencies</artifactId>
<version>7.1.0.M2</version>
<scope>import</scope>
<type>pom</type>
</dependency>
</dependencies>
</dependencyManagement>
<repositories>
<repository>
<id>alfresco</id>
<name>Activiti Releases</name>
<url>https://artifacts.alfresco.com/nexus/content/repositories/activiti-releases/</url>
<releases>
<enabled>true</enabled>
</releases>
</repository>
</repositories>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<includeSystemScope>true</includeSystemScope>
</configuration>
</plugin>
</plugins>
</build>
</project>
第二,写配置文件
application.yml文件的配置如下:
注意两个地方,jpa的方言选择,数据库的驱动
server:
port: 8080
spring:
datasource:
url: jdbc:dm://127.0.0.1:5236/activiti_test?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf-8
username: SYSDBA
password: SYSDBA
driverClassName: dm.jdbc.driver.DmDriver
hikari:
minimum-idle: 5
maximum-pool-size: 15
auto-commit: true
idle-timeout: 30000
pool-name: DatebookHikariCP
max-lifetime: 1800000
connection-timeout: 10000
jpa:
properties:
hibernate:
dialect: org.hibernate.dialect.DmDialect
ddl-auto: none
show-sql: true
activiti:
database-schema-update: true
history-level: full
db-history-used: true
第三,写代码
spring activiti本身就不支持达梦数据库,启动后悔报没有找到"DM DBMS",意思说没有知道DM数据库,所以我们这个时候要重写源码,把它加上。
先看一下代码的结构,结构不能变,否则重写源码不成功
这些添加的代码和项目的依赖activiti-engine-7.1.0.M2.jar的包路径是一样的,
因为有篇优秀的文章参考,我就不在重写一遍,直接上链接:
https://blog.csdn.net/CHINESEZZZ/article/details/113738582