通用mapper多条件分页查询

程序yang
全栈领域优质创作者
2021-04-01 04:47:05
第一次使用,还不太熟悉,有用过的大佬,可以给个源码看看嘛
...全文
560 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
程序yang 2021-04-02
  • 打赏
  • 举报
回复
引用 12 楼 明白畅达 的回复:
[quote=引用 11 楼 程序yang 的回复:]

@Override
    public PageInfo<User> findPages(int pageNum, int pageSize) {
        //分页
        PageHelper.startPage(pageNum, pageSize);
        //查询
        List<User> userList = userMapper.selectAll();
        // 分页信息 使用 pageInfo
        PageInfo<User> info = new PageInfo<>(userList);
        return new PageInfo<>(userList);
    }
比如这个方法,如果使用selectAll(),是不是就没有分页作用了?
有分页,而且你请求一下不就看出结果了吗[/quote] 发现问题所在了,是依赖问题, 之前引用的是这个,使用PageHelper.startPage(pageNum, pageSize);分页就会没效果

<!-- pagehelper分页插件 -->
        <!--        <dependency>-->
        <!--            <groupId>com.github.pagehelper</groupId>-->
        <!--            <artifactId>pagehelper</artifactId>-->
        <!--            <version>4.1.0</version>-->
        <!--        </dependency>-->
        <!--pagehelper -->
改为这个就可以了
引用
<dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.2.10</version> </dependency>
是因为它要依赖这个pagehelper-spring-boot-starter
程序yang 2021-04-02
  • 打赏
  • 举报
回复
看不到效果,始终返回总数,就是分页的第二个参数,始终是数据总数,就相当于一页显示完了
明白畅达 2021-04-02
  • 打赏
  • 举报
回复
引用 11 楼 程序yang 的回复:

@Override
    public PageInfo<User> findPages(int pageNum, int pageSize) {
        //分页
        PageHelper.startPage(pageNum, pageSize);
        //查询
        List<User> userList = userMapper.selectAll();
        // 分页信息 使用 pageInfo
        PageInfo<User> info = new PageInfo<>(userList);
        return new PageInfo<>(userList);
    }
比如这个方法,如果使用selectAll(),是不是就没有分页作用了?
有分页,而且你请求一下不就看出结果了吗
程序yang 2021-04-02
  • 打赏
  • 举报
回复

@Override
    public PageInfo<User> findPages(int pageNum, int pageSize) {
        //分页
        PageHelper.startPage(pageNum, pageSize);
        //查询
        List<User> userList = userMapper.selectAll();
        // 分页信息 使用 pageInfo
        PageInfo<User> info = new PageInfo<>(userList);
        return new PageInfo<>(userList);
    }
比如这个方法,如果使用selectAll(),是不是就没有分页作用了?
程序yang 2021-04-02
  • 打赏
  • 举报
回复

//分页是参数,当前页数,每页显示数量
        PageHelper.startPage(pageNum, pageSize);
想知道这个可不可以实现分页,配合哪个查询方法使用的?
程序yang 2021-04-02
  • 打赏
  • 举报
回复

 @Override
    public PageInfo<User> findPagess(String appId, int pageNum, int pageSize) {
        // 创建 Example对象 负责条件查询
        Example example = new Example(User.class);
        // 按id查询
        example.createCriteria().andEqualTo("appId", appId);
        // 创建 RowBounds对象 负责分页查询 第一个参数index,第二个参数每页展示条数
        RowBounds rowBounds = new RowBounds((pageNum - 1) * pageSize, pageSize);
        // 集成 按条件查询并分页 将两个对象放到继承Mapper接口的接口中
        List chapters = userMapper.selectByExampleAndRowBounds(example, rowBounds);
        return new PageInfo<>(chapters);
    }
修改了一下,好像这样子可以实现了,不知道写法是否正确?
明白畅达 2021-04-02
  • 打赏
  • 举报
回复
引用 4 楼 程序yang 的回复:
[quote=引用 2 楼 明白畅达 的回复:]用pagehelper就可以
把它放到selectByExampleAndRowBounds(example,pageHelper)这里吗?试了会报错[/quote]什么意思?selectByExampleAndRowBounds不是你自己写的方法?不用传给他pagehelper写在返回的List上面直接帮你分页,PageInfo是对分页结果进行包装吧,不写也能生效 代码: PageHelper.startPage(pageNum, pageSize); List<Car> list = list(queryWrapper); PageInfo page = new PageInfo(list);//可省略
程序yang 2021-04-02
  • 打赏
  • 举报
回复
引用 5 楼 LhLMy666666 的回复:
应该返回PageInfo对象的呀,不然怎么分页生效
有对应案例参考么?
LhLMy666666 2021-04-01
  • 打赏
  • 举报
回复
应该返回PageInfo对象的呀,不然怎么分页生效
程序yang 2021-04-01
  • 打赏
  • 举报
回复
引用 2 楼 明白畅达 的回复:
用pagehelper就可以
把它放到selectByExampleAndRowBounds(example,pageHelper)这里吗?试了会报错
明白畅达 2021-04-01
  • 打赏
  • 举报
回复
用pagehelper就可以
程序yang 2021-04-01
  • 打赏
  • 举报
回复

 @Override
    public List<User> findPage(String appId, int pageNum, int pageSize) {
        //分页
        PageHelper pageHelper = new PageHelper();

        //过滤
        Example example = new Example(User.class);
        Example.Criteria criteria = example.createCriteria();
        if (appId != null) {
            criteria.andEqualTo("appId", appId);
        }
//        if (StringUtils.isNotBlank(appId)) {
//            //过滤条件
//            example.createCriteria().orLike("username", "%" + key.toLowerCase() + "%").orEqualTo("phone",key.toLowerCase());
//        }
        //分页是参数,当前页数,每页显示数量
        pageHelper.startPage(pageNum, pageSize);
        //查询
        //List<User> userList = userMapper.selectByExample(example);
        List<User> userList = userMapper.selectByExampleAndRowBounds(example,));
        return userList;
    }

分页查询是不是调用selectByExampleAndRowBounds这个方法? 里面的参数,第二个怎么写?

81,090

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧