spring cativiti适配达梦数据库的方法

本教程所使用的环境:

框架 版本
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引入它们。


<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.0modelVersion>
	<parent>
		<groupId>org.springframework.bootgroupId>
		<artifactId>spring-boot-starter-parentartifactId>
		<version>2.1.8.RELEASEversion>
		<relativePath />
	parent>
	<groupId>com.examplegroupId>
	<artifactId>demoartifactId>
	<version>0.0.1-SNAPSHOTversion>
	<name>demoname>
	<description>Demo project for Spring Bootdescription>
	<properties>
		<java.version>11java.version>
	properties>
	<dependencies>
		<dependency>
			<groupId>org.springframework.bootgroupId>
			<artifactId>spring-boot-starter-data-jpaartifactId>
		dependency>
		<dependency>
			<groupId>org.springframework.bootgroupId>
			<artifactId>spring-boot-starter-webartifactId>
		dependency>
		<dependency>
			<groupId>org.springframework.bootgroupId>
			<artifactId>spring-boot-starter-testartifactId>
			<scope>testscope>
		dependency>
        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-securityartifactId>
        dependency>
		<dependency>
			<groupId>mysqlgroupId>
			<artifactId>mysql-connector-javaartifactId>
		dependency>
		<dependency>
			<groupId>org.projectlombokgroupId>
			<artifactId>lombokartifactId>
		dependency>

		<dependency>
			<groupId>org.hibernategroupId>
			<artifactId>hibernate-coreartifactId>
			<version>5.3.18.Finalversion>
		dependency>
		<dependency>
		<groupId>DmDialect.dialectgroupId>
		<artifactId>DmDialectartifactId>
		<version>5.3.0version>
		<scope>systemscope>
		<systemPath>${project.basedir}/lib/DmDialect-for-hibernate5.3.jarsystemPath>
		dependency>
		<dependency>
		<groupId>DmJdbcDrivergroupId>
		<artifactId>DmJdbcDriverartifactId>
		<version>1.8.0version>
		<scope>systemscope>
		<systemPath>${project.basedir}/lib/DmJdbcDriver18.jarsystemPath>
		dependency>
		 
        <dependency>
            <groupId>org.activitigroupId>
            <artifactId>activiti-spring-boot-starterartifactId>
        dependency>
        
	dependencies>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.activiti.dependenciesgroupId>
                <artifactId>activiti-dependenciesartifactId>
                <version>7.1.0.M2version>
                <scope>importscope>
                <type>pomtype>
            dependency>
        dependencies>
    dependencyManagement>
	<repositories>
		<repository>
			<id>alfrescoid>
			<name>Activiti Releasesname>
			<url>https://artifacts.alfresco.com/nexus/content/repositories/activiti-releases/url>
			<releases>
				<enabled>trueenabled>
			releases>
		repository>
	repositories>
	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.bootgroupId>
				<artifactId>spring-boot-maven-pluginartifactId>
				<configuration>
					<includeSystemScope>trueincludeSystemScope>
				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数据库,所以我们这个时候要重写源码,把它加上。
先看一下代码的结构,结构不能变,否则重写源码不成功
spring cativiti适配达梦数据库的方法_第1张图片
这些添加的代码和项目的依赖activiti-engine-7.1.0.M2.jar的包路径是一样的,
spring cativiti适配达梦数据库的方法_第2张图片
因为有篇优秀的文章参考,我就不在重写一遍,直接上链接:

https://blog.csdn.net/CHINESEZZZ/article/details/113738582

你可能感兴趣的:(数据库)