浏览代码

!101 【轻量级 PR】:修改在Mybatis全局配置文件中设置分页插件参数不生效问题
Merge pull request !101 from yzun/N/A

青苗 5 年之前
父节点
当前提交
c414e60654

+ 22 - 0
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/plugins/PaginationInterceptor.java

@@ -273,6 +273,11 @@ public class PaginationInterceptor extends AbstractSqlParserHandler implements I
 
     @Override
     public void setProperties(Properties prop) {
+        //根据Mybatis的configuration配置来设置参数
+        String countSqlParser = prop.getProperty("countSqlParser");
+        setSqlParser(countSqlParser);
+        String overflow = prop.getProperty("overflow");
+        setOverflow(Boolean.parseBoolean(overflow));
         String dialectType = prop.getProperty("dialectType");
         String dialectClazz = prop.getProperty("dialectClazz");
         if (StringUtils.isNotBlank(dialectType)) {
@@ -283,6 +288,23 @@ public class PaginationInterceptor extends AbstractSqlParserHandler implements I
         }
     }
 
+    /**
+     * 根据配置文件设置 countSqlParser
+     * @param countSqlParser
+     */
+    public void setSqlParser(String countSqlParser) {
+        ISqlParser sqlParser = null;
+        try {
+            Class<?> clazz = Class.forName(countSqlParser);
+            if (ISqlParser.class.isAssignableFrom(clazz)) {
+                sqlParser = ClassUtils.newInstance((Class<? extends ISqlParser>) clazz);
+                setCountSqlParser(sqlParser);
+            }
+        } catch (ClassNotFoundException e) {
+            throw ExceptionUtils.mpe("Class : %s is not found", countSqlParser);
+        }
+    }
+
     /**
      * 设置方言类型
      *