09.MyBatis整合PageHelper实现分页功能
1.导入通用的PageHelper依赖
<!-- 分页助手 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>3.7.5</version>
</dependency>
<dependency>
<groupId>com.github.jsqlparser</groupId>
<artifactId>jsqlparser</artifactId>
<version>0.9.1</version>
</dependency>
2.在MyBatis核心配置文件中配置PageHelper插件
注意:核心配置文件的标签是有顺序先后的,看下图标签放在第一个位置,就报错了。按照顺序plugins应该放在标签前。
<plugins>
<plugin interceptor="com.github.pagehelper.PageHelper">
<!-- dialect:指定方言 limit(mysql使用的分页语法是limit)-->
<property name="dialect" value="mysql"/>
</plugin>
</plugins>
3.测试分页代码实现
-
Mapper.xml的sql
<select id="findUser" resultType="user">
select *
from `user`
</select>
-
测试类:
@Test
public void test6() throws IOException {
InputStream resourceAsStream = Resources.getResourceAsStream("sqlMapConfig.xml");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
SqlSession sqlSession = sqlSessionFactory.openSession();
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
//设置分页参数
//参数1:当前页
//参数2:每页显示的条数
PageHelper.startPage(1,2);
List<User> byArray = userMapper.findUser();
for(User user4: byArray){
System.out.println(user4);
}
//获取分页相关的其他参数
PageInfo<User> pageInfo = new PageInfo<User>(byArray);
System.out.println("总页数:"+pageInfo.getPages());
System.out.println("总条数:"+pageInfo.getTotal());
System.out.println("是否为第一页:"+pageInfo.isIsFirstPage());
sqlSession.close();
}
-
测试结果