随笔 - 51  文章 - 0  评论 - 9  阅读 - 27万

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

 

posted on   鲁班快跑  阅读(27297)  评论(1编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示