资源简介
mybatis定时任务列表查询分页切割,列表查询存在风险,在框架的层面使用拦截器完成列表的分页切割
代码片段和文件信息
package com.bqjr.core.util.prepage;
import java.util.Properties;
import javax.xml.bind.PropertyException;
import org.apache.commons.lang3.StringUtils;
import org.apache.ibatis.executor.Executor;
import org.apache.ibatis.mapping.MappedStatement;
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.session.ResultHandler;
import org.apache.ibatis.session.RowBounds;
import com.bqjr.core.util.prepage.adapt.PrePageList;
import com.bqjr.core.util.prepage.compments.DataPageReader;
import com.bqjr.core.util.prepage.compments.QueryPage;
import com.bqjr.core.util.prepage.compments.QueryPageMybatisImpl;
@Intercepts({@Signature(type=Executor.classmethod=“query“
args=
{MappedStatement.classobject.classRowBounds.classResultHandler.class}
)})
public class PrePagePlugin implements Interceptor {
private static String dialect = ““; //数据库方言
private static String pageSqlId = ““; //mapper.xml中需要拦截的ID(正则匹配)
private static Long pageSize;
@SuppressWarnings({ “rawtypes“ “unchecked“ })
@Override
public object intercept(Invocation ivk) throws Throwable { //java.sql.Statement
System.out.println(“调用到了插件“);
MappedStatement mappedStatement = (MappedStatement) ivk.getArgs()[0];
if(mappedStatement.getId().matches(pageSqlId)){
try {
QueryPage qp = new QueryPageMybatisImpl<>(ivk dialect);
DataPageReader pd = new DataPageReader<>(qppageSize);
PrePageList plist = new PrePageList<>(pd);
return plist;
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException(“大数据量分页初始化异常“);
}
}
return ivk.proceed();
}
@Override
public object plugin(object arg0) {
return Plugin.wrap(arg0 this);
}
@Override
public void setProperties(Properties p) {
dialect = p.getProperty(“dialect“);
if (StringUtils.isEmpty(dialect)) {
try {
throw new PropertyException(“dialect property is not found!“);
} catch (PropertyException e) {
e.printStackTrace();
}
}
pageSqlId = p.getProperty(“pageSqlId“);
if (StringUtils.isEmpty(pageSqlId)) {
try {
throw new PropertyException(“pageSqlId property is not found!“);
} catch (PropertyException e) {
e.printStackTrace();
}
}
pageSize = new Long(p.getProperty(“pageSize“ “5000“));
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 73 2017-11-07 10:39 mybatis-querypage\read-me.txt
目录 0 2017-11-06 18:13 mybatis-querypage\
文件 1433 2017-11-06 18:20 mybatis-querypage\.classpath
文件 569 2017-11-06 18:13 mybatis-querypage\.project
目录 0 2017-11-06 18:20 mybatis-querypage\.settings\
文件 93 2017-11-06 18:20 mybatis-querypage\.settings\org.eclipse.core.resources.prefs
文件 736 2017-11-06 18:16 mybatis-querypage\.settings\org.eclipse.jdt.core.prefs
文件 90 2017-11-06 18:13 mybatis-querypage\.settings\org.eclipse.m2e.core.prefs
文件 1109 2017-11-06 18:17 mybatis-querypage\pom.xm
目录 0 2017-11-06 18:13 mybatis-querypage\src\
目录 0 2017-11-06 18:13 mybatis-querypage\src\main\
目录 0 2017-11-06 18:13 mybatis-querypage\src\main\java\
目录 0 2017-11-06 18:13 mybatis-querypage\src\main\java\com\
目录 0 2017-11-06 18:13 mybatis-querypage\src\main\java\com\bqjr\
目录 0 2017-11-06 18:13 mybatis-querypage\src\main\java\com\bqjr\core\
目录 0 2017-11-06 18:13 mybatis-querypage\src\main\java\com\bqjr\core\util\
目录 0 2017-11-06 18:13 mybatis-querypage\src\main\java\com\bqjr\core\util\prepage\
文件 2560 2017-11-06 17:20 mybatis-querypage\src\main\java\com\bqjr\core\util\prepage\PrePagePlugin.java
目录 0 2017-11-06 18:13 mybatis-querypage\src\main\java\com\bqjr\core\util\prepage\adapt\
文件 4267 2017-11-06 18:20 mybatis-querypage\src\main\java\com\bqjr\core\util\prepage\adapt\PrePageList.java
目录 0 2017-11-06 18:13 mybatis-querypage\src\main\java\com\bqjr\core\util\prepage\compments\
文件 2017 2017-11-06 17:42 mybatis-querypage\src\main\java\com\bqjr\core\util\prepage\compments\DataPageReader.java
文件 226 2017-11-06 09:56 mybatis-querypage\src\main\java\com\bqjr\core\util\prepage\compments\QueryPage.java
文件 5131 2017-11-06 17:42 mybatis-querypage\src\main\java\com\bqjr\core\util\prepage\compments\QueryPageMybatisImpl.java
目录 0 2017-11-06 18:13 mybatis-querypage\src\main\java\com\bqjr\core\util\prepage\helper\
文件 1994 2017-11-06 09:53 mybatis-querypage\src\main\java\com\bqjr\core\util\prepage\helper\ReflectHelper.java
文件 407 2017-11-06 17:55 mybatis-querypage\src\main\java\com\bqjr\core\util\prepage\mybatis-config-demo.xm
目录 0 2017-11-06 18:20 mybatis-querypage\src\main\resources\
目录 0 2017-11-06 18:13 mybatis-querypage\src\test\
目录 0 2017-11-06 18:20 mybatis-querypage\src\test\java\
目录 0 2017-11-06 18:20 mybatis-querypage\src\test\resources\
............此处省略27个文件信息
相关资源
- MyBatisPlus插件扩展_PaginationInterceptor分
- SSM框架以及Spring、SpringMVC、MyBatis分别
- SpringBoot整合Mybatis()
- mybatis关联查询问题(一对多、多对一
- springboot+dubbo+myBatis集成
- mybatis入门demo
- springboot+mybatis plus整合案例
- 基于quartz定时任务框架.rar
- mybatis plus+springboot反向生成代码
- maven+springmvc+mybatis+ajax实现增删查改和
- spring+springmvc+Mybatis登陆的
- 尚硅谷Spring4、SpringMVC、MyBatis视频教程
- mybatis-3-config.dtd mybatis-3-mapper.dtd
- mybatis分页插件194594
- mybatis-3-mybatis-3.4.6.tar
- mybatis-plus 实践及架构原理
- Spring 框架自带定时任务和Quartz定时任
- 自动生成MyBatis的实体类、实体映射
- mybatis-generator-config_1_0.dtd
- mybatis-generator,一对一,一对多,批量
- Spring @Scheduled定时任务动态修改cron参
- SpringBoot集成Redis,Webservice,kafka,q
- 稳定window系统服务器秒级别自动定时
- MyBatis-讲义-2.2.docx
- MybatisPlugin crack 完美破解
- 1.MybatisPlugin crack
- SpringBoot2.1.4+Mybatis+PageHelper整合
- springboot2.0+mybatis主从数据库双数据源
- Springboot中使用数据库配置定时任务
- 利用MVC(SpringMVC+Spring+MyBatis)实现购
评论
共有 条评论