一. 简单分页查询——limit
使用select查询时,如果结果集数据量较大,一个页面难以处理,就会采用分页查询。
分页查询,就是从结果集中拿出指定的第n页到第m页的数据来显示。
// limit分页公式
// currentPage:当前页
// pageSize:每页记录数
limit (currentPage-1) * pageSize,pageSize
// SQL语句
select * from student limit(currentPage-1)*pageSize,pageSize;
1. 基于注解的简单分页查询
【Mapper接口】
@select("select * from student limit #{pageBegin},#{pageSize}")
List findByPage(@Param("pageBegin") Integer PageBegin,@Param("PageSize")Integer PageSize);
【Controller类·】
@GetMapping("/findByPage")
public List findByPage(Integer page,Integer pageSize){
Integer pageBegin = (page-1) * pageSize;
return StudentMapper.findByPage(pageBegin,pageSize);
}
二.基于mapper.xml的复杂分页
1. 【定义Page类——封装分页结果】
/**
* 分页结果封装对象
*/
@AllArgsConstructor
@NoArgsConstructor
@Data
public class PageResult implements Serializable{
private Long total;//总记录数
private List rows;//当前页结果
}
2.【定义PageResult类——封装查询条件】
封装查询条件 请求参数包括页码、每页显示记录数、查询条件。 请求参数的json格式为:{currentPage:1,pageSize:10,queryString:''apesource''}
// 分页请求。
@AllArgsConstructor
@NoArgsConstructor
@Data
public class QueryPageBean implements Serializable{
private Integer currentPage;//当前页码
private Integer pageSize;//每页记录数
private String queryString;//查询条件
public QueryPageBean(Integer currentPage, Integer pageSize) {
this.currentPage = currentPage;
this.pageSize = pageSize;
}
}
3.【Dao层】
/*** 持久层Dao接口 */
@Mapper
public interface CheckGroupDao {
public Page selectByCondition(String queryString);
}
4.【xxxMapper.xml映射文件】
select * from t_checkgroup
where code = #{value} or name = #{value} or helpCode = #{value}
5.【Service层】
@Override
public PageResult pageQuery(Integer currentPage, Integer pageSize, String queryString) {
PageHelper.startPage(currentPage, pageSize);
Page page = checkGroupDao.selectByCondition(queryString);
return new PageResult(page.getTotal(), page.getResult());
}
6. 【Controller层】
//分页查询
@PostMapping("/findPage")
public PageResult findPage(@RequestBody QueryPageBean queryPageBean) {
try {
PageResult pageResult = checkGroupService.pageQuery(queryPageBean.getCurrentPage(),queryPageBean.getPageSize(),queryPageBean.getQueryString());
return pageResult;
} catch (Exception e) {
return null;
}
}