PageHelp问题

一、记录使用PageHelper时,使用Example添加排序失效问题

问题描述:

当使用PageHelper.startPage(pageNum,pageSize);之前,进行查询条件的构建,

 MemberGiftCardExample giftCardExample = new MemberGiftCardExample();
        giftCardExample.setOrderByClause("mgc_create_time DESC");
        MemberGiftCardExample.Criteria criteria = giftCardExample.createCriteria();
        if (!StringUtils.isEmpty(dto.getCode())) {
            String likeCode = "%" + dto.getCode() + "%";
            criteria.andMgcCodeLike(likeCode);
        }
..................................省略

执行查询操作后,返回数据并没有进行排序。

解决方法:

可以在这PageHelper.startPage里面,加一个排序条件PageHelper.startPage(pageNum,pageSize,排序条件);

第一种:之前在example里面设置了order by 所以可以直接获取
PageHelper.startPage(pageNum,pageSize,giftCardExample.getOrderByClause());
第二种:直接将排序条件写到第三个参数里

PageHelper.startPage(pageNum , pageSize);PageHelper.orderBy("A B");
其中A为排序依据的字段名,B为排序规律,desc为降序,asc为升序
或者一步到位

String orderBy="字段名(数据库字段名) 排序规律";

PageHelper.startPage(pageNum, pageSize, orderBy);

二、使用PageHelper进行分页时,出现分页数据重复问题

原因:

pageHelper进行分页时,如果排序字段不唯一或者可能为空,那么就可能出现查询结果在不同页中有重复的数据,部分数据也因此查询不出来。这个bug似乎不一定百分百的出现,但是出现的概率非常的大。

解决办法:

如果要排序的字段的值不是唯一的,那么必须加上具备唯一性的主键id(或其他唯一性字段)作为辅助排序,这样就能避免查询结果重复。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: 为了使用PageHelper实现分页功能,你需要进行以下几个步骤: 1. 首先,在你的项目中引入PageHelper依赖。你可以在pom.xml文件中添加以下代码: ```xml <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>版本号</version> </dependency> ``` 2. 然后,在你的MyBatis配置文件(通常是mybatis-config.xml)中配置分页插件。你可以在`<plugins>`标签内添加以下代码: ```xml <plugin interceptor="com.github.pagehelper.PageInterceptor"></plugin> ``` 3. 接下来,在你的代码中使用PageHelper来实现分页。你可以在想要进行分页的查询方法中添加以下代码: ```java PageHelper.startPage(page, pageSize); List<YourEntity> yourEntityList = yourMapper.selectByCondition(yourCondition); PageInfo<YourEntity> pageInfo = new PageInfo<>(yourEntityList); ``` 以上代码中,`page`是当前页码,`pageSize`是每页的记录数,`yourMapper`是你的数据访问接口,`yourCondition`是你的查询条件。通过`startPage`方法来启动分页功能,然后执行查询操作,最后使用`PageInfo`对象来获取分页后的结果。 这样,你就可以通过PageHelper实现快速的分页功能了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Mybatis-Plus学习笔记](https://blog.csdn.net/xikx99/article/details/121837172)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [MyBatis从0到1快速入门](https://blog.csdn.net/m_xiaozhilei/article/details/124653416)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值