|
@@ -15,52 +15,34 @@
|
|
*/
|
|
*/
|
|
package com.baomidou.mybatisplus.extension.plugins;
|
|
package com.baomidou.mybatisplus.extension.plugins;
|
|
|
|
|
|
-import static java.util.stream.Collectors.joining;
|
|
|
|
-
|
|
|
|
-import java.sql.Connection;
|
|
|
|
-import java.sql.PreparedStatement;
|
|
|
|
-import java.sql.ResultSet;
|
|
|
|
-import java.util.ArrayList;
|
|
|
|
-import java.util.Arrays;
|
|
|
|
-import java.util.List;
|
|
|
|
-import java.util.Map;
|
|
|
|
-import java.util.Properties;
|
|
|
|
-
|
|
|
|
-import org.apache.ibatis.executor.statement.StatementHandler;
|
|
|
|
-import org.apache.ibatis.mapping.BoundSql;
|
|
|
|
-import org.apache.ibatis.mapping.MappedStatement;
|
|
|
|
-import org.apache.ibatis.mapping.ParameterMapping;
|
|
|
|
-import org.apache.ibatis.mapping.SqlCommandType;
|
|
|
|
-import org.apache.ibatis.mapping.StatementType;
|
|
|
|
-import org.apache.ibatis.plugin.Interceptor;
|
|
|
|
-import org.apache.ibatis.plugin.Intercepts;
|
|
|
|
-import org.apache.ibatis.plugin.Invocation;
|
|
|
|
-import org.apache.ibatis.plugin.Plugin;
|
|
|
|
-import org.apache.ibatis.plugin.Signature;
|
|
|
|
-import org.apache.ibatis.reflection.MetaObject;
|
|
|
|
-import org.apache.ibatis.reflection.SystemMetaObject;
|
|
|
|
-import org.apache.ibatis.scripting.defaults.DefaultParameterHandler;
|
|
|
|
-import org.apache.ibatis.session.Configuration;
|
|
|
|
-import org.apache.ibatis.session.RowBounds;
|
|
|
|
-
|
|
|
|
import com.baomidou.mybatisplus.annotation.DbType;
|
|
import com.baomidou.mybatisplus.annotation.DbType;
|
|
import com.baomidou.mybatisplus.core.MybatisDefaultParameterHandler;
|
|
import com.baomidou.mybatisplus.core.MybatisDefaultParameterHandler;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
import com.baomidou.mybatisplus.core.parser.ISqlParser;
|
|
import com.baomidou.mybatisplus.core.parser.ISqlParser;
|
|
import com.baomidou.mybatisplus.core.parser.SqlInfo;
|
|
import com.baomidou.mybatisplus.core.parser.SqlInfo;
|
|
-import com.baomidou.mybatisplus.core.toolkit.ArrayUtils;
|
|
|
|
-import com.baomidou.mybatisplus.core.toolkit.ExceptionUtils;
|
|
|
|
-import com.baomidou.mybatisplus.core.toolkit.PluginUtils;
|
|
|
|
-import com.baomidou.mybatisplus.core.toolkit.StringPool;
|
|
|
|
-import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
|
|
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.*;
|
|
import com.baomidou.mybatisplus.extension.handlers.AbstractSqlParserHandler;
|
|
import com.baomidou.mybatisplus.extension.handlers.AbstractSqlParserHandler;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.DialectFactory;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.DialectFactory;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.DialectModel;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.DialectModel;
|
|
import com.baomidou.mybatisplus.extension.toolkit.JdbcUtils;
|
|
import com.baomidou.mybatisplus.extension.toolkit.JdbcUtils;
|
|
import com.baomidou.mybatisplus.extension.toolkit.SqlParserUtils;
|
|
import com.baomidou.mybatisplus.extension.toolkit.SqlParserUtils;
|
|
-
|
|
|
|
import lombok.Setter;
|
|
import lombok.Setter;
|
|
import lombok.experimental.Accessors;
|
|
import lombok.experimental.Accessors;
|
|
|
|
+import org.apache.ibatis.executor.statement.StatementHandler;
|
|
|
|
+import org.apache.ibatis.mapping.*;
|
|
|
|
+import org.apache.ibatis.plugin.*;
|
|
|
|
+import org.apache.ibatis.reflection.MetaObject;
|
|
|
|
+import org.apache.ibatis.reflection.SystemMetaObject;
|
|
|
|
+import org.apache.ibatis.scripting.defaults.DefaultParameterHandler;
|
|
|
|
+import org.apache.ibatis.session.Configuration;
|
|
|
|
+import org.apache.ibatis.session.RowBounds;
|
|
|
|
+
|
|
|
|
+import java.sql.Connection;
|
|
|
|
+import java.sql.PreparedStatement;
|
|
|
|
+import java.sql.ResultSet;
|
|
|
|
+import java.util.*;
|
|
|
|
+
|
|
|
|
+import static java.util.stream.Collectors.joining;
|
|
|
|
|
|
/**
|
|
/**
|
|
* 分页拦截器
|
|
* 分页拦截器
|
|
@@ -142,6 +124,9 @@ public class PaginationInterceptor extends AbstractSqlParserHandler implements I
|
|
StatementHandler statementHandler = PluginUtils.realTarget(invocation.getTarget());
|
|
StatementHandler statementHandler = PluginUtils.realTarget(invocation.getTarget());
|
|
MetaObject metaObject = SystemMetaObject.forObject(statementHandler);
|
|
MetaObject metaObject = SystemMetaObject.forObject(statementHandler);
|
|
|
|
|
|
|
|
+ // SQL 解析
|
|
|
|
+ this.sqlParser(metaObject);
|
|
|
|
+
|
|
// 先判断是不是SELECT操作 (2019-04-10 00:37:31 跳过存储过程)
|
|
// 先判断是不是SELECT操作 (2019-04-10 00:37:31 跳过存储过程)
|
|
MappedStatement mappedStatement = (MappedStatement) metaObject.getValue("delegate.mappedStatement");
|
|
MappedStatement mappedStatement = (MappedStatement) metaObject.getValue("delegate.mappedStatement");
|
|
if (SqlCommandType.SELECT != mappedStatement.getSqlCommandType()
|
|
if (SqlCommandType.SELECT != mappedStatement.getSqlCommandType()
|
|
@@ -149,9 +134,6 @@ public class PaginationInterceptor extends AbstractSqlParserHandler implements I
|
|
return invocation.proceed();
|
|
return invocation.proceed();
|
|
}
|
|
}
|
|
|
|
|
|
- // SQL 解析
|
|
|
|
- this.sqlParser(metaObject);
|
|
|
|
-
|
|
|
|
// 针对定义了rowBounds,做为mapper接口方法的参数
|
|
// 针对定义了rowBounds,做为mapper接口方法的参数
|
|
BoundSql boundSql = (BoundSql) metaObject.getValue("delegate.boundSql");
|
|
BoundSql boundSql = (BoundSql) metaObject.getValue("delegate.boundSql");
|
|
Object paramObj = boundSql.getParameterObject();
|
|
Object paramObj = boundSql.getParameterObject();
|