Преглед изворни кода

修改在Mybatis全局配置文件中设置分页插件参数不生效问题

yzun пре 5 година
родитељ
комит
b84e748e72

+ 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);
+        }
+    }
+
     /**
      * 设置方言类型
      *