【Mybatis】(六)分页

分页

1.为什么要分页?

  • 减少数据的处理量

2.使用Limit分页

  • 语法

    SELECT * FROM user LIMIT startIndex,pageSize; #起始下标从0开始
    SELECT * FROM user limit n; #[0,n]
    

3.使用mybatis实现分页

  • 接口

    //分页
    List<User> getUserByLimit(Map<String,Integer> map);
    
  • UserMapper.xml

    <resultMap id="UserMap" type="pojo.User">
            <result column="pwd" property="password" />
    </resultMap>
     <!--分页-->
    <select id="getUserByLimit" parameterType="map" resultMap="UserMap">
            select * from mybatiss.user limit #{startIndex},#{pageSize};
    </select>
    
  • 测试

     @Test
        public void getUserByLimit(){
            SqlSession sqlSession = MybatisUtils.getSqlSession();
            UserMapper mapper = sqlSession.getMapper(UserMapper.class);
            Map<String, Integer> map = new HashMap<>();
            map.put("startIndex",0);
            map.put("pageSize",2);
            List<User> userList=mapper.getUserByLimit(map);
    
            for (User user : userList) {
                System.out.println(user);
            }
    
            sqlSession.close();
        }
    

4.使用RowBounds实现分页(一般不用了)

​ 不再使用SQL实现分页

  • 接口

    //分页2
    List<User> getUserByRowBounds();
    
  • UserMapper.xml

     <select id="getUserByRowBounds" resultMap="UserMap">
            select * from mybatiss.user;
    </select>
    
  • 测试

     @Test
        public void getUserByRowBounds(){
            SqlSession sqlSession = MybatisUtils.getSqlSession();
    
            RowBounds rowBounds = new RowBounds(0, 2);
    
            //通过java代码层面实现分页
            List<User> userList=sqlSession.selectList("dao.UserMapper.getUserByRowBounds",null,rowBounds);
    
            for (User user : userList) {
                System.out.println(user);
            }
    
            sqlSession.close();
        }
    

5.分页插件PageHelper

posted @ 2021-01-20 21:08  musecho  阅读(72)  评论(0)    收藏  举报