Bläddra i källkod

Merge pull request #3423 from yfdxzy2010/3.0

添加瀚高数据库支持
qmdx 4 år sedan
förälder
incheckning
1723f96011

+ 5 - 0
mybatis-plus-annotation/src/main/java/com/baomidou/mybatisplus/annotation/DbType.java

@@ -116,6 +116,11 @@ public enum DbType {
      * Firebird
      */
     FIREBIRD("Firebird", "Firebird 数据库"),
+
+    /**
+     * HighGo
+     */
+    HighGo("highgo", "瀚高数据库"),
     /**
      * UNKONWN DB
      */

+ 1 - 0
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/plugins/pagination/dialects/DialectRegistry.java

@@ -48,6 +48,7 @@ public class DialectRegistry {
         dialect_enum_map.put(DbType.HSQL, new PostgreDialect());
         dialect_enum_map.put(DbType.KINGBASE_ES, new PostgreDialect());
         dialect_enum_map.put(DbType.PHOENIX, new PostgreDialect());
+        dialect_enum_map.put(DbType.HighGo, new HighGoDialect());
         // oracle and children
         dialect_enum_map.put(DbType.ORACLE, new OracleDialect());
         dialect_enum_map.put(DbType.DM, new OracleDialect());

+ 23 - 0
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/plugins/pagination/dialects/HighGoDialect.java

@@ -0,0 +1,23 @@
+package com.baomidou.mybatisplus.extension.plugins.pagination.dialects;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.DialectModel;
+
+/**
+ * HighGo 数据库分页语句组装实现
+ *
+ * @author ivan
+ * @since 2021-04-06
+ */
+public class HighGoDialect implements IDialect {
+
+    @Override
+    public DialectModel buildPaginationSql(String originalSql, long offset, long limit) {
+        StringBuilder sql = new StringBuilder(originalSql).append(" LIMIT ").append(FIRST_MARK);
+        if (offset != 0L) {
+            sql.append(" OFFSET ").append(SECOND_MARK);
+            return new DialectModel(sql.toString(), limit, offset).setConsumerChain();
+        } else {
+            return new DialectModel(sql.toString(), limit).setConsumer(true);
+        }
+    }
+}

+ 3 - 1
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/toolkit/JdbcUtils.java

@@ -101,7 +101,9 @@ public class JdbcUtils {
             return DbType.SYBASE;
         } else if (jdbcUrl.contains(":oceanbase:")) {
             return DbType.OCEAN_BASE;
-        } else {
+        }else if (url.contains(":highgo:")) {
+            return DbType.HighGo;
+        }else {
             logger.warn("The jdbcUrl is " + jdbcUrl + ", Mybatis Plus Cannot Read Database type or The Database's Not Supported!");
             return DbType.OTHER;
         }