springboot mybatis pagehelper不生效
基本上是版本问题
springboot3.0.4 +pagehelper-starter1.4.6可以
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.0.4</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>3.0.1</version> </dependency> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.4.6</version> </dependency>
@GetMapping("/pageQuery") public Result page(@RequestParam(defaultValue = "1") Integer page, @RequestParam(defaultValue = "10") Integer pageSize) { PageHelper.startPage(page,pageSize); Page<Emp> emps = empMapper.queryByPageHelper(); return Result.success(emps); }
或者物理分页
@GetMapping("/emps") Result queryByPage(@RequestParam(defaultValue = "1") Integer page, @RequestParam(defaultValue = "10") Integer pageSize, String name, Integer gender, String begin, String end) { //前端请求""报错 if ("".equals(name)) { name = null; } if ("".equals(begin)) { begin = null; } if ("".equals(end)) { end = null; } //在分页展示之前要先统计条件查询记录数 log.error("查询员工成功"); log.debug("debug查询员工"); log.info("info查询员工"); PagePojo pages = empService.queryByPage(page, pageSize, name, gender, begin, end); // pages.setRows(list); return Result.success(pages); }
service
@Autowired private EmpMapper empMapper; @Override public PagePojo queryByPage(Integer page, Integer pageSize, String name, Integer gender, String begin, String end) { //String name, Integer gender, String begin, String end这4个参数为条件查询,姓名性别和日期开始结束查询 Integer total = empMapper.count(name, gender, begin, end); log.info("page,pagesize,{},{}", page, pageSize); Integer start = (page - 1) * pageSize; List<Emp> rows = empMapper.queryByPage(start, pageSize, name, gender, begin, end); // empMapper.queryCondition(name,gender,begin,end); PagePojo pagePojo = new PagePojo(); pagePojo.setTotal(total); pagePojo.setRows(rows); return pagePojo; }
mapper
<select id="queryCondition" resultType="com.sunshine.manager.pojo.Emp"> select id,username,password,name,gender,image,job,entrydate,dept_id,create_time,update_time from emp <where> <if test="name!=null">name like CONCAT('%','#{name}','%')</if> <if test="gender!=null"> and gender=#{gender} </if> <if test="begin!=null">and between begin=#{begin} and end=#{end}</if> </where> # queryCondition公共查询抽取 </select> <select id="queryByPage" resultType="com.sunshine.manager.pojo.Emp"> <include refid="queryCondition"/> limit #{start},#{pageSize} </select>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了