资源简介
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个文件信息
相关资源
- SpringBoot+H2+mybatis-plus59130
- mybatis连接oracle实例
- 基于SSM+CXF构建的RESTFul webservice
- Spring+MyBatis企业应用实战第一二版的源
- springboot+mybatis整合实现注册登录
- 基于web的图书馆运营系统
- springboot+jpa+thymeleaf实现增删改查分页
- MyBatis plugin 3.155 (最新版)
- MyBatis 3.4.7 中文帮助文档(CHM)
- mybatis3-api.chm
- SpringBoot+Mybatis+前后台隔离技术,完整
- Spring+Struts2+Mybatis的一个增删改查的
- 使用MybatisPlus+SpringMBVC完成的CUID以及分
- springmvc+mybatis点餐系统(包含完整数据
- springmvc+Mybatis+axis2+webservice+quartz作业整
- 基于yml 配置方式 ,实现springBoot+sha
- spring+struts2+mybatis三大框架集成实现用
- .net core 定时任务
- springboot+mybatis+layui
- springmvc_2020.rar
- 基于SSM的校社联社团管理系统SpringM
- springboot+mybatis后台vue.js实现前端的音
- 安卓后台服务相关-安卓定时任务每隔
- Mybatis从入门到精通(源码)
- Mybatis的代码
- mybatis-3.3.0.zip
- MyEclipse MyBatis Generatorl离线安装包
- MyBatis Generator自定义插件实现自定义
- mybatis-generator-1.3.5源码修改.zip
- 基于SSM的个人博客系统的设计与实现
评论
共有 条评论