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中引入该插件即可,引入如下:
<dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>4.1.4</version> </dependency>
2. 在mybatis的全局配置文件SqlMapConfig.xml中配置该插件
<?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类的对象,
这个对象可以获取总记录数,下面看下测试的代码。
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