MyBatis(十二):RowBounds实现分页

打印 上一主题 下一主题

主题 986|帖子 986|积分 2958

首先说明一下,这种涉及了在MyBatis(二)中说的那个第二种老方法,所以一般不推荐使用。
上一篇我们利用SQL的limit实现了分页,是在SQL层面的,那么这次我们利用java代码RowBounds来实现。直接上操作。
一、RowBounds实现分页
1.在UserMapper接口中声明一个新的方法
  1. //利用RowBounds进行分页
  2. List<User> getUserbyRowBounds();
复制代码
2.在UserMapper.xml中实现这个方法
  1.     <select id="getUserbyRowBounds" resultMap="UserMap">
  2.         select * from mybaties.user
  3.     </select>
复制代码
3.junit测试
  1. @Test
  2.     public void RowBoundstest() {
  3.         //利用工具类获取SqlSession
  4.          SqlSession sqlSession = MyBatisUtil.getSqlSession();
  5.          RowBounds rowBounds = new RowBounds(5, 10);
  6.          List<User> userList = sqlSession.selectList("com.jms.dao.UserMapper.getUserbyRowBounds",
  7.                  null, rowBounds);
  8.         for (User user : userList) {
  9.             System.out.println(user);
  10.         }
  11.     }
复制代码
测试结果:

 二、MyBatis分页插件pageHelper
官方地址:https://pagehelper.github.io/
 三、自己实现一个分页的类
1.建立一个工具类PaginationUtil.class
  1. package com.jms.utils;
  2. import java.util.List;
  3. public class PaginationUtil {
  4.     public static <T> List<T> Pagination(List<T> list, int offset , int limit) {
  5.         while (offset > 0) {
  6.             list.remove(0);
  7.             offset --;
  8.         }
  9.         while (list.size() > limit) {
  10.             list.remove(limit);
  11.         }
  12.         return list;
  13.     }
  14. }
复制代码
2.junit测试
  1. @Test
  2.     public void test2() {
  3.         SqlSession sqlSession = MyBatisUtil.getSqlSession();
  4.         UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
  5.         List<User> userList = userMapper.getUserbyRowBounds();
  6.         PaginationUtil.Pagination(userList, 5, 10);
  7.         for (User user : userList) {
  8.             System.out.println(user);
  9.         }
  10.     }
复制代码
测试结果:

 
 
 
(本文仅作个人学习记录用,如有纰漏敬请指正)

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

勿忘初心做自己

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表