Selaa lähdekoodia

添加MariaDB支持

Caratacus 7 vuotta sitten
vanhempi
commit
18be26edaf

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

@@ -22,6 +22,7 @@ import com.baomidou.mybatisplus.exceptions.MybatisPlusException;
 import com.baomidou.mybatisplus.plugins.pagination.dialects.DB2Dialect;
 import com.baomidou.mybatisplus.plugins.pagination.dialects.H2Dialect;
 import com.baomidou.mybatisplus.plugins.pagination.dialects.HSQLDialect;
+import com.baomidou.mybatisplus.plugins.pagination.dialects.MariaDBDialect;
 import com.baomidou.mybatisplus.plugins.pagination.dialects.MySqlDialect;
 import com.baomidou.mybatisplus.plugins.pagination.dialects.OracleDialect;
 import com.baomidou.mybatisplus.plugins.pagination.dialects.PostgreDialect;
@@ -121,6 +122,9 @@ public class DialectFactory {
             case MYSQL:
                 dialect = MySqlDialect.INSTANCE;
                 break;
+            case MARIADB:
+                dialect = MariaDBDialect.INSTANCE;
+                break;
             case ORACLE:
                 dialect = OracleDialect.INSTANCE;
                 break;

+ 38 - 0
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/plugins/pagination/dialects/MariaDBDialect.java

@@ -0,0 +1,38 @@
+/**
+ * Copyright (c) 2011-2014, hubin (jobob@qq.com).
+ * <p>
+ * 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
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
+ * 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.plugins.pagination.dialects;
+
+import com.baomidou.mybatisplus.plugins.pagination.IDialect;
+
+/**
+ * <p>
+ * MariaDB 数据库分页语句组装实现
+ * </p>
+ *
+ * @author Caratacus
+ * @Date 2018-04-24
+ */
+public class MariaDBDialect implements IDialect {
+
+    public static final MariaDBDialect INSTANCE = new MariaDBDialect();
+
+    @Override
+    public String buildPaginationSql(String originalSql, int offset, int limit) {
+        StringBuilder sql = new StringBuilder(originalSql);
+        sql.append(" LIMIT ").append(offset).append(",").append(limit);
+        return sql.toString();
+    }
+}

+ 4 - 0
mybatis-plus-support/src/main/java/com/baomidou/mybatisplus/enums/DBType.java

@@ -30,6 +30,10 @@ public enum DBType {
      * MYSQL
      */
     MYSQL("mysql", "`%s`", "MySql数据库"),
+    /**
+     * MARIADB
+     */
+    MARIADB("mariadb", "`%s`", "MariaDB数据库"),
     /**
      * ORACLE
      */

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

@@ -46,8 +46,10 @@ public class JdbcUtils {
             throw new MybatisPlusException("Error: The jdbcUrl is Null, Cannot read database type");
         }
         if (jdbcUrl.startsWith("jdbc:mysql:") || jdbcUrl.startsWith("jdbc:cobar:")
-                || jdbcUrl.startsWith("jdbc:log4jdbc:mysql:")) {
+            || jdbcUrl.startsWith("jdbc:log4jdbc:mysql:")) {
             return DBType.MYSQL;
+        } else if (jdbcUrl.startsWith("jdbc:mariadb:")) {
+            return DBType.MARIADB;
         } else if (jdbcUrl.startsWith("jdbc:oracle:") || jdbcUrl.startsWith("jdbc:log4jdbc:oracle:")) {
             return DBType.ORACLE;
         } else if (jdbcUrl.startsWith("jdbc:sqlserver:") || jdbcUrl.startsWith("jdbc:microsoft:")) {