Mybatis的分页插件com.github.pagehelper
1. 需要引入PageHelper的jar包
如果没有使用maven,那直接把jar包导入到lib文件夹下即可,这个PageHelper插件在github上有开源,
地址为:https://github.com/pagehelper/Mybatis-PageHelper/tree/master/src/main/java/com/github/pagehelper。
如果使用了maven,那么只要在pom.xml中引入该插件即可,引入如下:
1 2 3 4 5 6 7 8 9 | <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version> 4.1 . 4 </version> </dependency> |
2. 在mybatis的全局配置文件SqlMapConfig.xml中配置该插件
1 2 3 4 5 6 7 8 9 10 11 12 13 | <?xmlversion= "1.0" encoding= "UTF-8" ?> <!DOCTYPEconfiguration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd" > <configuration> <!-- 配置分页插件 --> <plugins> <plugin interceptor= "com.github.pagehelper.PageHelper" > <!-- 设置数据库类型Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL六种数据库--> <property name= "dialect" value= "mysql" /> </plugin> </plugins> </configuration> |
3. 在执行sql前添加插件,完成分页功能
在查询的sql语句执行之前,添加一行代码PageHelper.startPage(1, 10);第一个参数表示第几页,第二个参数表示每页显示的记录数。
这样在执行sql后就会将记录按照语句中设置的那样进行分页。如果需要获取总记录数的话,需要PageInfo类的对象,
这个对象可以获取总记录数,下面看下测试的代码。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | public class TestPageHelper { @Test public void testPageHelper() { // 创建一个spring容器 ApplicationContext context = new ClassPathXmlApplicationContext( "classpath:spring/applicationContext-*" ); // 从spring容器中获取mapper代理对象 TbItemMapper mapper =context.getBean(TbItemMapper. class ); // 执行查询并分页,TbItemExample是逆向工程自动生成的,用来进行条件查询,这里不设置则表示无条件 TbItemExample example = new TbItemExample(); //分页处理,显示第一页的10条数据 PageHelper.startPage( 1 , 10 ); List<TbItem> list =mapper.selectByExample(example); //查询 // 取商品列表 for (TbItem item : list) { System.out.println(item.getTitle()); } // 取分页信息 PageInfo<TbItem> pageInfo = new PageInfo<TbItem>(list); long total = pageInfo.getTotal(); //获取总记录数 System.out.println( "共有商品信息:" + total); } } |
官方文档,参考:
https://github.com/pagehelper/Mybatis-PageHelper/blob/master/wikis/zh/HowToUse.md
作者:鲁班快跑
出处:https://www.cnblogs.com/zhusf/p/10607193.html
版权:本文版权归作者和博客园共有
转载:您可以随意转载、摘录,但请在文章内注明作者和原文链接。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了