mybatis分页拦截器(自动封装版)讲解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
近期由于工作需要,想要开发一版能够满足多数人员使用的mybatis分页拦截器,在网上查找了很多资料并结合自己的一些理解,开发出了以下一版简单的代码。
起初想要遵循江湖惯例,通过各个层级间传递分页参数来实现目标,但开发过程中发现这样针对已开发好的代码影响较大(需要修改前端到后端的所有代码),成本较高。然后在此基础上提升了目标
1、降低业务代码侵入性。
2、减少原有代码的修改。
3、减少调用人员开发量。
虽然最终版本在初次配置使用时会有一些繁琐,但后续扩展非常有优势。废话少说,上配置过程和代码。使用方法
1、将java文件放置到某个文件夹下
2、添加maven依赖 mybatis 主要是拦截器部分,可自行在内部资源库中搜索或在网上搜索
3、配置spring mybatis部分。
4、根据需要修改spring-mybatis文件。
5、Mapper文件中配置以”ForPage”结尾的查询,如
select
distinct t.*
from table t
group by t.id
5、jsp页面引入
java代码
分页信息实体
/**
* 分页信息
*/
public class PageBean {
private int DEF_PAGE_VIEW_SIZE = 15;
/** 当前页*/
private int pageNo = 1;
/** 当前页显示记录条数*/
private int pageSize;
/** 取得查询总记录数*/
private int totalRecord;
private String actionUrl;
private Map
public String getActionUrl() {
return actionUrl;
}
public void setActionUrl(String actionUrl) {
this.actionUrl = actionUrl;
}
public Map
return params;
}
public void setParams(Map
this.params = params;
}
/**
* (空)
*/
public PageBean() {
this.pageNo = 1;
this.pageSize = DEF_PAGE_VIEW_SIZE;
}
/**
* 根据当前显示页与每页显示记录数设置查询信息初始对象
*
* @param pageNo 当前显示页号
* @param pageSize 当前页显示记录条数
*/
public PageBean(int pageNo, int pageSize) {
this.pageNo = (pageNo <= 0) ? 1 : pageNo;
this.pageSize = (pageSize <= 0) ? DEF_PAGE_VIEW_SIZE : pageSize; }
/**
* 取得当前显示页号
*
* @return 当前显示页号
*/
public int getPageNo() {
return (pageNo <= 0) ? 1 : pageNo;
/**
* 设置当前页
*
* @param pageNo 当前页
*/
public void setPageNo(int pageNo) {
this.pageNo = pageNo;
}
/**
* 取得当前显示页号最多显示条数
*
* @return 当前显示页号最多显示条数
*/
public int getPageSize() {
return (pageSize <= 0) ? DEF_PAGE_VIEW_SIZE : pageSize;
}
/**
* 设置当前页显示记录条数
*
* @param pageSize 当前页显示记录条数
*/
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getTotalRecord() {
return totalRecord;
}
public void setTotalRecord(int totalRecord) {
this.totalRecord = totalRecord;
// 在设置总页数的时候计算出对应的总页数,在下面的三目运算中加法拥有更高的优先级,所以最后可以不加括号。
int totalPage = totalRecord % pageSize == 0 ? totalRecord / pageSize
: totalRecord / pageSize + 1;
this.setTotalPage(totalPage);
}
public int getTotalPage() {
return this.totalPage;
}
public void setTotalPage(int totalPage) {
this.totalPage = totalPage;
}