添加依赖
修改pom.xml
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.9</version>
</dependency>
配置
根据官网介绍,有2种方式:
- 配置在
spring.xml中 - 配置在
mybatis.xml中
这里只介绍mybatis.xml配置方法
<plugins>
<!-- com.github.pagehelper为PageHelper类所在包名 -->
<plugin interceptor="com.github.pagehelper.PageInterceptor">
<!-- 使用下面的方式配置参数,后面会有所有的参数介绍 -->
<!-- <property name="helperDialect" value="mysql"/> -->
</plugin>
</plugins>
使用
mapper.xml
与普通查询sql相同,不需要增加额外内容
<select id="mgrQueryList" resultMap="GoodsRM" >
select id,img,name,descrip,price from goods
<where>
<if test='name!=null and name!=""'>
and name like "%"#{name}"%"
</if>
</where>
order by update_time desc,name,id
</select>
mapper接口
与普通接口相同,不需要改动
public List mgrQueryList(@Param("name")String name);
json封装类
JsonResult:
@JsonInclude(JsonInclude.Include.NON_NULL)
public class JsonResult<T> {
/*
0:成功,正确
非0表示错误
100:用户名、密码不正确
101:密码错误
102:用户名不存在
*/
private int code;
/*
提示信息
*/
private String msg;
private T data;
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public T getData() {
return data;
}
public void setData(T data) {
this.data = data;
}
}
JsonResultPage:
public class JsonResultPage<T> extends JsonResult<T>{
private Integer pageNum;//当前页数
private Integer pageSize;//每页显示记录数
private Integer pages;//总共页数
private Long total;//总共记录数
public Integer getPageNum() {
return pageNum;
}
public void setPageNum(Integer pageNum) {
this.pageNum = pageNum;
}
public Integer getPageSize() {
return pageSize;
}
public void setPageSize(Integer pageSize) {
this.pageSize = pageSize;
}
public Integer getPages() {
return pages;
}
public void setPages(Integer pages) {
this.pages = pages;
}
public Long getTotal() {
return total;
}
public void setTotal(Long total) {
this.total = total;
}
}
service
有小改动,这里只介绍一种,详见:pagehelper 分页实现-PageHelper.startPage方式
public PageInfo<Goods> mgrQueryList(String name,String startDate,String endDate,Integer status,int pageNum,int pageSize) throws Exception{
//pageNum当前页数,pageSize每页显示记录数
//注意:不能将 page 对象返回给前端,会得不到 pageNum、pageSize 等信息
Page page=PageHelper.startPage(pageNum, pageSize, true);
List list=dao.mgrQueryList(name, startDate, endDate,status);
//需要将结果封装成PageInfo对象,才能得到 pageNum、pageSize、isFirstPage 等信息
PageInfo<Goods> pageInfo=new PageInfo<Goods>(list,page.getPages());
return pageInfo;
}
controller
有小改动
@RequestMapping("/list")
public JsonResult list(String name,String pageNum,String pageSize){
JsonResultPage jr=new JsonResultPage();
int pageNumInt=0;
int pageSizeInt=10;
if(pageNum!=null && !"".equals(pageNum)) {
pageNumInt=Integer.parseInt(pageNum);
}
if(pageSize!=null && !"".equals(pageSize)) {
pageSizeInt=Integer.parseInt(pageSize);
}
try {
PageInfo<Goods> page=srv.mgrQueryList(name, startDate, endDate,status, pageNumInt,pageSizeInt);
jr.setCode(0);
jr.setData(page.getList());
jr.setPageNum(pageNumInt);//当前页数
jr.setPageSize(pageSizeInt);//每页显示的记录数
jr.setPages(page.getPages());//总共的页数
jr.setTotal(page.getTotal());//总共记录数
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
jr.setCode(100000);
jr.setMsg("发生错误");
}
return jr;
}