资源简介
【核心代码】
/**
* 拦截后要执行的方法
*/
@SuppressWarnings({ "rawtypes", "unchecked" })
public Object intercept(Invocation invocation) throws Throwable {
Object param = invocation.getArgs()[1];
//如果参数为空,直接直接返回
if (null == param) {
return invocation.proceed();
}
//获取分页参数对象
PageVO pageVO = getPageParam(param);
if (null != pageVO) {
//查询符合条件的总记录数
int totalCount = getQueryCount(
(Executor)invocation.getTarget(), (MappedStatement)invocation.getArgs()[0],
parameter, (RowBounds)invocation.getArgs()[2], (ResultHandler<?>)invocation.getArgs()[3]);
//设置数据总条数
pageVO.setTotalSize(totalCount);
//查询符合条件的分页数据行记录
if (totalCount <= 0) {
return Arrays.asList(new PageResultVO(pageVO, new ArrayList<Object>(0)));
}
return Arrays.asList(new PageResultVO(pageVO, (List<Object>)invocation.proceed()));
}
//返回查询结果
return invocation.proceed();
}
/**
* 获取分页总数据条数
*
* @param executor
* @param ms
* @param parameter
* @param rowBounds
* @return
*/
protected int getQueryCount(Executor executor, MappedStatement ms, Object param,
RowBounds rowBounds, ResultHandler<?> resultHandler) throws Throwable {
int totalCount = 0;
//查询分页总记录数
List<Object> list = executor.query(
ms.getConfiguration().getMappedStatement(
new StringBuilder(ms.getId()).append(suffix).toString()),
param, rowBounds, resultHandler);
if (null != list
&& list.size() == 1) {
totalCount = (Integer)list.get(0);
}
return totalCount;
}
/**
* 获取分页参数
*
* @param param
* @return
*/
@SuppressWarnings({ "unchecked"})
protected PageVO getPageParam(Object param) {
PageVO pageVO = null;
//如果参数为分页对象则直接返回
if (param instanceof PageVO) {
pageVO = (PageVO)param;
}
//如果参数不是Map对象则直接返回
if(!(param instanceof Map)){
return pageVO;
}
//迭代获取分页对象
ParamMap<Object> paramMap = (ParamMap<Object>)param;
if (null != paramMap) {
for(Iterator<Map.Entry<String, Object>> iterator = paramMap.entrySet().iterator(); iterator.hasNext();){
Map.Entry<String, Object> paramEentry = iterator.next();
//获取到分页对象则直接跳出迭代
if (paramEentry.getValue() instanceof PageVO) {
pageVO = (PageVO)paramEentry.getValue();
break;
}
}
}
return pageVO;
}
代码片段和文件信息
package com.demo.it.core.model;
import java.io.Serializable;
import java.util.Date;
import java.util.UUID;
/**
* 系统实体基础VO。
*
*/
public class baseVO implements Serializable {
private static final long serialVersionUID = 3650949305552107900L;
/**
* 数据Id唯一标示
*/
private String id;
/**
* 操作人账号Id
*/
private String createById;
/**
* 操作人账号
*/
private String createByName;
/**
* 操作人账号Id
*/
private String updateById;
/**
* 操作人账号
*/
private String updateByName;
/**
* 创建时间
*/
private Date createTime;
/**
* 更新时间
*/
private Date updateTime;
public baseVO() {
super();
}
public baseVO(String id) {
super();
this.id = id;
}
public baseVO(String id String updateById String updateByName) {
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2016-03-24 13:12 demo\
文件 1102 2016-01-18 09:23 demo\.classpath
文件 1032 2016-01-13 16:22 demo\.project
目录 0 2016-03-24 13:12 demo\.settings\
文件 119 2016-01-09 15:21 demo\.settings\org.eclipse.core.resources.prefs
文件 430 2016-01-18 09:23 demo\.settings\org.eclipse.jdt.core.prefs
文件 90 2016-01-09 15:21 demo\.settings\org.eclipse.m2e.core.prefs
文件 249 2016-01-09 17:56 demo\.settings\org.eclipse.wst.common.component
文件 172 2016-01-18 09:23 demo\.settings\org.eclipse.wst.common.project.facet.core.xm
文件 50 2016-01-13 16:22 demo\.settings\org.eclipse.wst.validation.prefs
文件 3480 2016-01-18 09:22 demo\pom.xm
目录 0 2016-03-24 13:12 demo\src\
目录 0 2016-03-24 13:12 demo\src\main\
目录 0 2016-03-24 13:12 demo\src\main\java\
目录 0 2016-03-24 13:12 demo\src\main\java\com\
目录 0 2016-03-24 13:12 demo\src\main\java\com\demo\
目录 0 2016-03-24 13:12 demo\src\main\java\com\demo\it\
目录 0 2016-03-24 13:12 demo\src\main\java\com\demo\it\core\
目录 0 2016-03-24 13:15 demo\src\main\java\com\demo\it\core\model\
文件 2480 2016-03-24 13:14 demo\src\main\java\com\demo\it\core\model\ba
文件 1607 2016-03-24 13:14 demo\src\main\java\com\demo\it\core\model\OrderVO.java
文件 997 2016-03-24 13:14 demo\src\main\java\com\demo\it\core\model\PageResultVO.java
文件 4271 2016-03-24 13:14 demo\src\main\java\com\demo\it\core\model\PageVO.java
目录 0 2016-03-24 13:12 demo\src\main\java\com\demo\it\core\orm\
目录 0 2016-03-24 13:12 demo\src\main\java\com\demo\it\core\orm\plugins\
目录 0 2016-03-24 13:13 demo\src\main\java\com\demo\it\core\orm\plugins\mybatis\
文件 3835 2016-03-24 13:13 demo\src\main\java\com\demo\it\core\orm\plugins\mybatis\MybatisPaginationInterceptor.java
目录 0 2016-03-24 13:12 demo\src\test\
目录 0 2016-03-24 13:12 demo\src\test\java\
目录 0 2016-03-24 13:12 demo\src\test\java\com\
目录 0 2016-03-24 13:12 demo\src\test\java\com\lqkj\
............此处省略74个文件信息
- 上一篇:Sturts敏感字过滤及校验
- 下一篇:java mybatis 分页插件 代码
相关资源
- java mybatis 分页插件 代码
- 手机端网页选择地址插件
- springboot2log4j2-动态mybatis
- 超市订单管理系统(spring boot+mybatis
- 兼容PC和移动设备的日期选择jquery插件
- Swiper3插件 入门级
- mybatis 代码生成器
- Java 实现表格的分页技术
- MyBatis基础教程.pptx
- Mergely(左右文本对比插件)
- jQuery便条插件+jStickyNote
- android andbatdog电池监控
- android安装应用插件 Cordova插件
- Mybatsi-plus逆向模型
- spring boot mybatis jsp前端展示对mysql增删
- 用ssmspring+springmvc+mybatis开发的的一个
- SSM项目入门级(Spring+SpringMVC+Mybatis框
- SpringMVC整合shiro、mybatis、redis的
- Spring mvc整合mybatis.rar
- springspringMVCmybatis实现用户增删改查的
- excel插件实现html表格生成excel
- java 博客系统源码( Docker SpringBoot M
- maven+springmvc+mybatis+log4j 入门级
- spring+springmvc+mybatis搭建的一个考勤管
- 权限管理系统SpringMvc+Spring+MyBatis框架
- 基于 SSM的后台管理系统DEMO
- android 手机上调用插件打开网页
- mysql分页的六种方法.docx
- android Sqlite 分页
- jquery动态添加tab签(CleverTabs插件)
评论
共有 条评论