Kaynağa Gözat

适配达梦数据库

caixiaofeng 5 ay önce
ebeveyn
işleme
8185f3b773

+ 47 - 0
README.md

@@ -0,0 +1,47 @@
+### 适配达梦数据库
+
+#### 1、添加达梦数据库驱动
+
+```xml
+
+<dependency>
+    <groupId>com.dameng</groupId>
+    <artifactId>DmJdbcDriver18</artifactId>
+</dependency>
+```
+
+#### 2、数据库连接配置
+
+url后缀添加 **compatibleMode=oracle**
+
+```yml
+spring:
+  datasource:
+    driver-class-name: dm.jdbc.driver.DmDriver
+    type: com.zaxxer.hikari.HikariDataSource
+    url: jdbc:dm://127.0.0.1:30236?compatibleMode=oracle
+    username: SYSDBA
+    password: SYSDBA001
+```
+
+#### 3、主键生成配置
+| id生成 | 实现                                                             |
+|------|----------------------------------------------------------------|
+| 自增ID | @KeySequence(value = "SEQ_MODEL_STRING_KEY", dbType = DbType.DM) 
+|
+| 雪花算法 | @TableId(type = IdType.ASSIGN_ID)                              |
+#### 4、分页方言配置
+在 ***com.flow.common.mybatis.configure.MybatisPlusConfigure***文件中,修改为***DbType.DM***
+```java
+    @Bean
+    public MybatisPlusInterceptor mybatisPlusInterceptor() {
+        MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
+        // 分页插件
+        mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.DM));
+        return mybatisPlusInterceptor;
+    }
+```
+#### 5、修改递归查询方言
+项目中的查询使用到mysql8的***with recursive*** 递归查询,修改为***CONNECT BY*** 递归查询
+#### 6、执行sql脚本
+***sql/dm.sql***

+ 5 - 5
flow-app/src/main/resources/mapper/workflow/FlowDefineDao.xml

@@ -14,7 +14,7 @@
         <result property="modelId" column="model_id" jdbcType="INTEGER"/>
         <result property="version" column="version" jdbcType="INTEGER"/>
         <result property="groupId" column="group_id" jdbcType="INTEGER"/>
-        <result property="admin" column="admin" jdbcType="VARCHAR" typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler"/>
+        <result property="admin" column="_admin" jdbcType="VARCHAR" typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler"/>
         <result property="starters" column="starters" jdbcType="VARCHAR" typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler"/>
         <result property="settings" column="settings" jdbcType="VARCHAR" typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler"/>
         <result property="suspend" column="suspend" jdbcType="INTEGER"/>
@@ -28,7 +28,7 @@
 
     <sql id="defProcess">
         SELECT rp.ID_               AS define_id,
-               rp.KEY_              AS `key_`,
+               rp.KEY_              AS key_,
                rp.NAME_             AS name,
                rp.VERSION_          AS version,
                rp.SUSPENSION_STATE_ AS suspend,
@@ -40,7 +40,7 @@
                fd.icon,
                fd.process,
                fd.form,
-               fd.admin,
+               fd._admin,
                fd.starters,
                fd.settings,
                fd.created_by,
@@ -53,7 +53,7 @@
     <select id="getList" resultMap="BaseResultMap">
         SELECT
             rp.ID_               AS define_id,
-            rp.KEY_              AS `key_`,
+            rp.KEY_              AS key_,
             rp.NAME_             AS name,
             rp.VERSION_          AS version,
             rp.SUSPENSION_STATE_ AS suspend,
@@ -63,7 +63,7 @@
             fd.group_id,
             fd.model_id,
             fd.icon,
-            fd.admin,
+            fd._admin,
             fd.starters,
             fd.created_by,
             fd.updated_by,

+ 1 - 1
flow-workflow/flow-workflow-entity/src/main/java/com/flow/entity/FlowDefine.java

@@ -39,7 +39,7 @@ public class FlowDefine extends BaseEntity {
     private String name;
     @TableField(exist = false)
     private Integer version;
-    @TableField(typeHandler = JacksonTypeHandler.class)
+    @TableField(value = "_admin", typeHandler = JacksonTypeHandler.class)
     private List<String> admin;
     @TableField(typeHandler = JacksonTypeHandler.class)
     private List<Principal> starters;

+ 2 - 4
flow-workflow/flow-workflow-entity/src/main/java/com/flow/entity/FlowModel.java

@@ -1,8 +1,6 @@
 package com.flow.entity;
 
-import com.baomidou.mybatisplus.annotation.SqlCondition;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.*;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
@@ -40,7 +38,7 @@ public class FlowModel extends BaseEntity {
     private Long groupId;
     private Boolean enable;
     private String remark;
-    @TableField(typeHandler = JacksonTypeHandler.class)
+    @TableField(value = "_admin", typeHandler = JacksonTypeHandler.class)
     private List<String> admin;
     @TableField(typeHandler = JacksonTypeHandler.class)
     private List<Principal> starters;

Dosya farkı çok büyük olduğundan ihmal edildi
+ 705 - 0
sql/dm.sql


+ 0 - 0
sql/flow.sql → sql/mysql.sql


Bu fark içinde çok fazla dosya değişikliği olduğu için bazı dosyalar gösterilmiyor