09.MyBatis整合PageHelper实现分页功能
-
MyBatis可以使用第三方的插件来对功能进行扩展,分页组手PageHelper是将分页的复杂操作进行封装,使用简单的方式即可获得分页的相关数据。
开发步骤:
- 导入通用的PageHelper依赖
- 在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(); } -
测试结果