分页拦截器依赖
<dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.4.1</version> </dependency>
在对应的application.yml配置
#分页pageHelper
pagehelper:
helper-dialect: mysql
reasonable: true
support-methods-arguments: true
代码示例
controller
/**
* 分页查询
*/
@GetMapping("/page")
public R select(Integer page,Integer pageSize,String name){
return employeeeService.select(page,pageSize,name);
}
Service层
public R select(Integer page, Integer pageSize, String name) {
//构建分页拦截器
PageHelper.startPage(page, pageSize);
List<Employee> employeeList = employeeMapper.select(name);
PageInfo<Employee> PageInfo = new PageInfo<>(employeeList);
//返回值对象,这里的P类是根据前端要的数据专门写的类,。属性只有这四条
Paging p = new Paging();
p.setTotal(PageInfo.getTotal());//总条数
p.setSize(PageInfo.getSize()); //每页显示条数
p.setCurrent(PageInfo.getPageNum());//当前页码
p.setRecords(employeeList);//被展示的数据集
return R.success(p);
}
dao层
List<Employee> select(String name);
POJO类
@Data//这里用了小辣椒插件
public class Paging {
private long total;
private int current;
private int size;
private List records;
}
SQL语句
要注意的是,通过模糊查询的话,需要用以下的标准格式进行:
like concat('%', #{name}, '%')
<select id="select" resultMap="Employee">
select *
from employee
<where>
<if test="name !=null and name !='' ">
name like concat('%', #{name}, '%')
</if>
</where>
分页查询器的其他功能属性值,仅供了解
private int pageNum;//当前页码
private int pageSize;//设置每页多少条数据
private int size;//当前页有多少条数据
private int startRow;//当前页码第一条数据的
private int endRow;//当前页码的开始条
private int pages;//当前页码结束条
private int prePage;//上一页(页面链接使用)
private int nextPage;//下一页(页面链接使用)
private boolean isFirstPage;//是否为第一页
private boolean isLastPage;//是否为最后一页
private boolean hasPreviousPage;//是否有前一页
private boolean hasNextPage;//是否有下一页
private int navigatePages;//导航页码数(就是总共有多少页)
private int[] navigatepageNums;//导航页码数(就是总共有多少页),可以用来遍历
private int navigateFirstPage;//首页号
private int navigateLastPage;//尾页号
时间的查询,两个时间之间用between关键词
<select id="paGing1" resultType="com.itheima.pojo.Order">
select*
from reggie_order
<where>
<if test="number !=null and number !='' ">
number like concat('%',#{number},'%')
</if>
<if test="beginTime !=null and beginTime !='' ">
and orderTime between #{beginTime}
</if>
<if test="endTime !=null and endTime !='' ">
and #{endTime}
</if>
</where>