分页插件——PageHelper
创始人
2024-05-29 17:58:13
0

文章目录

  • 1 分页查询——分页插件(PageHelper)
    • 1.1 概述
    • 1.2 代码实现
      • 1.2.1 在pom.xml引入依赖
      • 1.2.2 Mapper数据访问层实现
      • 1.2.3 Service业务逻辑层实现
      • 1.2.4 postman测试试
  • 2 带条件的分页查询——分页插件(PageHelper)
    • 2.1 需求
    • 2.2 代码实现
      • 2.2.1 controller访问请求控制层代码实现
      • 2.2.2 Service业务逻辑层
      • 2.2.3 Mapper数据访问层
      • 2.2.4 MyBatis XML配置文件
      • 2.2.5 postman功能测试

1 分页查询——分页插件(PageHelper)

1.1 概述

官网:https://pagehelper.github.io/

在这里插入图片描述

在执行empMapper.list()方法时,就是执行:select * from emp 语句,怎么实现分页操作

分页插件帮我们完成了以下操作:

  • 先获取到要执行的SQL语句:select * from emp
  • 把SQL语句中的字段列表,变为:count(*)
  • 执行SQL语句:select count(*) from emp //获取到总记录数
  • 再对要执行的SQL语句:select * from emp 进行改造,在末尾添加 limit ? , ?
  • 执行改造后的SQL语句:select * from emp limit ? , ?

1.2 代码实现

1.2.1 在pom.xml引入依赖

com.github.pagehelperpagehelper-spring-boot-starter1.4.2

1.2.2 Mapper数据访问层实现

@Mapper
public interface EmpMapper {//获取当前页的结果列表@Select("select * from emp")public List page(Integer start, Integer pageSize);
}

1.2.3 Service业务逻辑层实现

@Override
public PageBean page(Integer page, Integer pageSize) {// 设置分页参数PageHelper.startPage(page, pageSize); // 执行分页查询List empList = empMapper.list(name,gender,begin,end); // 获取分页结果Page p = (Page) empList;   //封装PageBeanPageBean pageBean = new PageBean(p.getTotal(), p.getResult()); return pageBean;
}

1.2.4 postman测试试

在这里插入图片描述
在这里插入图片描述

2 带条件的分页查询——分页插件(PageHelper)

2.1 需求

红框中三个条件非必须,因此我们使用动态SQL

20221215175639974

2.2 代码实现

2.2.1 controller访问请求控制层代码实现

@Slf4j
@RestController
@RequestMapping("/emps")
public class EmpController {@Autowiredprivate EmpService empService;//条件分页查询@GetMappingpublic Result page(@RequestParam(defaultValue = "1") Integer page,@RequestParam(defaultValue = "10") Integer pageSize,String name, Short gender,@DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate begin,@DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate end) {//记录日志log.info("分页查询,参数:{},{},{},{},{},{}", page, pageSize,name, gender, begin, end);//调用业务层分页查询功能PageBean pageBean = empService.page(page, pageSize, name, gender, begin, end);//响应return Result.success(pageBean);}
}

2.2.2 Service业务逻辑层

public interface EmpService {/*** 条件分页查询* @param page     页码* @param pageSize 每页展示记录数* @param name     姓名* @param gender   性别* @param begin   开始时间* @param end     结束时间* @return*/PageBean page(Integer page, Integer pageSize, String name, Short gender, LocalDate begin, LocalDate end);
}

2.2.2.1 Impl实现类

@Slf4j
@Service
public class EmpServiceImpl implements EmpService {@Autowiredprivate EmpMapper empMapper;@Overridepublic PageBean page(Integer page, Integer pageSize, String name, Short gender, LocalDate begin, LocalDate end) {//设置分页参数PageHelper.startPage(page, pageSize);//执行条件分页查询List empList = empMapper.list(name, gender, begin, end);//获取查询结果Page p = (Page) empList;//封装PageBeanPageBean pageBean = new PageBean(p.getTotal(), p.getResult());return pageBean;}
}

2.2.3 Mapper数据访问层

@Mapper
public interface EmpMapper {//获取当前页的结果列表public List list(String name, Short gender, LocalDate begin, LocalDate end);
}

2.2.4 MyBatis XML配置文件





2.2.5 postman功能测试

在这里插入图片描述
在这里插入图片描述

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
一帆风顺二龙腾飞三阳开泰祝福语... 本篇文章极速百科给大家谈谈一帆风顺二龙腾飞三阳开泰祝福语,以及一帆风顺二龙腾飞三阳开泰祝福语结婚对应...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...