Browse Source

增加informix数据库

Signed-off-by: xujianxie <xujianxie@163.com>
xujianxie 2 years ago
parent
commit
3809f0c24b

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

@@ -182,6 +182,10 @@ public enum DbType {
      * TDengine
      */
     TDENGINE("TDengine", "TDengine数据库"),
+    /**
+     * Informix
+     */
+    INFORMIX("informix", "Informix数据库"),
 
     /**
      * UNKONWN DB

+ 2 - 0
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/plugins/pagination/DialectFactory.java

@@ -95,6 +95,8 @@ public class DialectFactory {
                 || dbType == DbType.GBASEDBT
                 || dbType == DbType.GBASE_INFORMIX) {
                 dialect = new GBase8sDialect();
+            }else if(dbType==DbType.INFORMIX){
+                dialect = new InformixDialect();
             }
             DIALECT_ENUM_MAP.put(dbType, dialect);
         }

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

@@ -0,0 +1,16 @@
+package com.baomidou.mybatisplus.extension.plugins.pagination.dialects;
+import com.baomidou.mybatisplus.core.toolkit.StringPool;
+import com.baomidou.mybatisplus.extension.plugins.pagination.DialectModel;
+public class InformixDialect implements IDialect{
+    @Override
+    public DialectModel buildPaginationSql(String originalSql, long offset, long limit) {
+        /*StringBuilder ret = new StringBuilder();
+        ret.append(String.format("select skip %s first %s ", FIRST_MARK+"",SECOND_MARK+""));
+        ret.append(originalSql.replaceFirst("(?i)select", ""));
+        return new DialectModel(ret.toString(), offset, limit).setConsumerChain();*/
+        StringBuilder ret = new StringBuilder();
+        ret.append(String.format("select skip %s first %s ", offset+"",limit+""));
+        ret.append(originalSql.replaceFirst("(?i)select", ""));
+        return new DialectModel(ret.toString());
+    }
+}

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

@@ -131,7 +131,9 @@ public class JdbcUtils {
             return DbType.OPENGAUSS;
         } else if (url.contains(":TAOS:")) {
             return DbType.TDENGINE;
-        } else {
+        }else if (url.contains(":informix")) {
+           return DbType.INFORMIX;
+        }  else {
             logger.warn("The jdbcUrl is " + jdbcUrl + ", Mybatis Plus Cannot Read Database type or The Database's Not Supported!");
             return DbType.OTHER;
         }