MyBatis常用的俩种分页方式
创始人
2024-05-28 23:16:23
0

1、使用 limit 实现分页

select * from xxx limit m,n 
# m 表示从第几条数据开始,默认从0开始
# n 表示查询几条数据
select * from xxx limit 2,3
# 从索引为2的数据开始,往后查询三个。2、3、4

(1) 创建分页对象,用来封装分页的数据

PS:我使用了Lombok插件,或者直接生成set、get、toString也一样。

/**** Author: YZG* Date: 2023/3/5 21:55* Description:  用于封装分页信息*/
@Data
@ToString
public class Page {// 当前页码数private Integer currPage;// 总页码 = 总记录数 / 当前页记录数// 总记录数private Integer totalCount;// 每页记录数private Integer pageSize;// 数据private List list;}

(1)提供俩个方法

    /** 以下俩个方法用于分页* map 用于封装查询参数* */List findUserByPage(Map map);
​// 查询总记录数Integer totalCount();

mapper 映射文件:

    

(2)提供分页方法

  /*** @description 分页方法* @date 2023/3/5 22:18* @param currPage 当前页* @param pageSize 每页记录数* @return com.example.mptest.entity.Page*/public Page findUserByPage(int currPage, int pageSize) {// 创建分页对象Page page = new Page<>();HashMap params = new HashMap<>();// 起始查询数据索引。// 比如:查询第二页,每页5条数据. (2-1) * 5 = 5, 查询的数据索引为: 5,6,7,8,9params.put("start", (currPage - 1) * pageSize);params.put("pageSize", pageSize);// 每页的数据List list = userMapper.findUserByPage(params);// 查询总记录数int totalCount = userMapper.count();
​// 封装分页信息返回page.setCurrPage(currPage);page.setPageSize(pageSize);page.setList(list);page.setTotalCount(totalCount);return  page;}

2、使用 pagehelper 插件

(1)引入依赖

        com.github.pagehelperpagehelper5.2.0

(2)配置分页拦截器

PS:由于我使用的SpringBoot,直接向容器中注入即可。

@Configuration
public class MyBatisConfig {
​@Beanpublic PageInterceptor pageInterceptor(){return new PageInterceptor();}
}

或者在spring配置文件中配置:

    

(3)测试

    @Testpublic void testPage() {
​// pageNum:当前页码  pageSize:每页记录数PageHelper.startPage(1,3);// 查询所有数据List list = userMapper.findAll();// 第一个参数:需要分页的数据// 第二个参数:导航分页的页码数。也就是显示多少页PageInfo pageInfo = new PageInfo<>(list,3);// pageInfo 里保存了分页的所有信息System.out.println(pageInfo);}
关于PageInfo里面的属性说明
pageNum : 当前页码pageSize : 每页显示条数size : 当前页显示的真实条数total :总记录数pages:总页数prePage:上一页的页码nextPage : 下一页的页码isFirstPage/isLastPage:是否为第一页/最后一个hasPreviousPage/hasNextPage:是否有上一页/下一页navigatePage : 导航分页的页码数navigatePageNums : 导航分页显示的页码数 [1,2,3,4,5]

相关内容

热门资讯

安徽新一批招聘公告来了!附岗位... 近期安徽新一批招聘公告出炉有适合你的岗位吗?一起来看看吧↓↓↓北京师范大学淮南实验学校教师招聘启事招...
21日可赏火星东方照 来源:新华网新华社记者 王珏玢 朱筱21日9时34分将迎来火星东方照。当天傍晚,火星位于天空正南方。...
这届剑网3玩家,在WPS里「作... 在大部分打工人眼里,WPS是办公标配,写PPT、做表格、赶周报的必需。但最近有些不同。4月14日开始...
观众称看机器人跑马像看科幻片 转自:河南商报 #跑马人形机器人参赛团队发声#【#观众称...
18年,30万人青春接力!湖南... 今天,中国建设银行湖南省分行·2025湖南(春季)百公里出征,近万名毅行者共迎风雨,集体挑战徒步穿越...
宇树科技回应机器人马拉松摔倒:... 4月19日,首届人形机器人半程马拉松在北京开跑。多个网传视频显示,宇树科技G1人形机器人在跑步过程中...
4万股民慌了!居然智家董事长突... 正在正常经营中的居然之家。 李凯旋/摄本报记者   李凯旋   北京报道如果不是因为这件事,那投资者...
“使命就是科研报国!”庞众望“... 转自:新京报评论从“庞众望”们身上可以看到,我们的国与家的未来,都充满希望。▲庞众望在清华大学“科学...
江苏人爱读书!去年全省居民综合... 转自:微讯江苏爱读书、读好书、善读书,阅读始终是江苏大地上一道美丽的风景。4月19日,2025年江苏...
海口2025年一季度汽车“置换... 南海网4月19日消息(记者 张野)记者从海口市商务局获悉,海口将于4月20日正式开放2025年一季度...
学生入读高校三年无学籍无毕业证... 转自:北京新闻广播 【#学生入读高校三年无学籍无毕业证#...
AI赋能,新能源汽车产业在“智... 来源:新华社新华社记者 唐诗凝 高亢 于也童站在去年产销均超过1200万辆的新台阶上,有人会问,中国...
全球首个机器人马拉松!天工Ul... 当波士顿动力机器人还在表演后空翻时,中国科技圈已悄然开启新纪元——4月19日,全球首次“人机共跑”半...
白宫将设工作组紧急处理对中国加... 当地时间4月18日,美国哥伦比亚广播公司报道称,多名消息人士透露,由于特朗普政府对中国商品加征的畸高...
河北自贸试验区“牵手”海南自贸... 河北自贸试验区“牵手”海南自贸港签署全面深化合作框架协议,明确10项合作内容河北港口集团曹妃甸矿石码...
马斯克突然“低调”了 报道称,马斯克在关键政策上的影响力显示出局限性,其在在内阁会议上的表现明显低调、在X平台上的活跃度也...
周五不加班,加个微信吧! 转自:新和成周五的夜晚 我们不谈工作,谈谈感情  4月18日晚,当城市渐渐亮起灯火,新昌风铃小院开启...
东城打造170余条“安心通学路... 新京报讯 据“北京东城”微信公众号消息,近日,北京市“安心通学路”建设工作现场会在东城区灯市口小学召...
反对美对华物流、海事和造船领域... 4月19日,中国物流与采购联合会在官网发布《关于反对美对华物流、海事和造船领域301调查措施的声明》...
一夜连震47次!日本“可能发生... 当地时间18日20时18分,日本长野县发生5.1级地震,多地震感强烈。随后当地连续发生47次地震,居...