Bootstrap

mybatis实现分页的几种方法

通过limit 实现分页

1、基本语法


SELECT * FROM table LIMIT stratIndex,pageSize

#列子
#<1>检索记录为1到10行数据,下标是从0开始的
select * from user limit 0,10;
#<2>limit 只给一个参数表示从0开始到参数值的记录数,下面的语句相当于limit 0,5
select * from user limit 5;

2、添加接口方法

//实现分页操作
List getUserList1(Map map);

3、添加UserMapper.xml。通过map将其实记录数和每页显示条数传进去

3、添加测试

 @Test
    public void testGetUserList(){
        SqlSession sqlSession = MysqlUtil.getSqlSession();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        Map map = new HashMap();
        map.put("startindex",0);
        map.put("pagesize",2);
        List userList1 = mapper.getUserList1(map);
        for(User user:userList1){
            System.out.println(user);
        }
    }

4、查看测试结果,返回1、2 两条记录

User{id=1, name='张三', password='322334'}
User{id=2, name='李四', password='123456'}

RowBounds 实现分页

1、添加mapper接口

//通过RowBounds 方法实现分页
    List getUserListByRowBounds();

2、UserMapper.xml 配置文件

 

3、添加测试方法

  @Test
    public void getUserByRowBounds(){
        SqlSession sqlSession = MysqlUtil.getSqlSession();
        
        int currPage =1; //当前页
        int pageSize = 2; //每页大小
        RowBounds rowBounds = new RowBounds((currPage-1)*pageSize,pageSize);
        ////通过session.**方法进行传递rowBounds,[此种方式现在已经不推荐使用了]
        List userList = sqlSession.selectList("com.xiezhr.dao.UserMapper.getUserListByRowBounds", null, rowBounds);
        for(User user:userList){
            System.out.println(user);
        }
        sqlSession.close();

    }

4、测试结果,得到第二、第三条数据

User{id=1, name='张三', password='322334'}
User{id=2, name='李四', password='123456'}

通过mybatis分页插件PageHelper实现分页

官方文档:https://pagehelper.github.io/