浏览代码

add sinodb dialect

wujl 2 年之前
父节点
当前提交
3905910e8d

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

@@ -118,6 +118,8 @@ public enum DbType {
      */
     @Deprecated
     GBASE_INFORMIX("gbase 8s", "南大通用数据库 GBase 8s"),
+
+    SINODB("sinodb","星瑞格数据库"),
     /**
      * Oscar
      */

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

@@ -99,6 +99,8 @@ public class DialectFactory {
                 dialect = new GBase8sDialect();
             }else if(dbType==DbType.INFORMIX){
                 dialect = new InformixDialect();
+            }else if (dbType==DbType.SINODB){
+                dialect = new SinoDBDialect();
             }
             DIALECT_ENUM_MAP.put(dbType, dialect);
         }

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

@@ -0,0 +1,35 @@
+/*
+ * Copyright (c) 2011-2022, baomidou (jobob@qq.com).
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.baomidou.mybatisplus.extension.plugins.pagination.dialects;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.DialectModel;
+
+/**
+ * GBase 8s V8.8 数据库分页语句组装实现
+ * 通用分页版本
+ *
+ * @author wujl
+ * @since 2023-05-23
+ */
+public class SinoDBDialect implements IDialect {
+
+    @Override
+    public DialectModel buildPaginationSql(String originalSql, long offset, long limit) {
+        StringBuilder sql = new StringBuilder(originalSql)
+            .insert(6, " SKIP " + offset + " FIRST " + limit);
+        return new DialectModel(sql.toString());
+    }
+}

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

@@ -135,7 +135,9 @@ public class JdbcUtils {
             return DbType.TDENGINE;
         } else if (url.contains(":informix")) {
             return DbType.INFORMIX;
-        } else if (url.contains(":uxdb:")) {
+        } else if (url.contains(":informix")) {  //目前sinodb的连接用informix的连接串
+            return DbType.SINODB;
+        }else if (url.contains(":uxdb:")) {
             return DbType.UXDB;
         } else {
             logger.warn("The jdbcUrl is " + jdbcUrl + ", Mybatis Plus Cannot Read Database type or The Database's Not Supported!");