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>
复制代码

 

posted @   myWang  阅读(346)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示