分页

分页

  • 思考:为什么要分页?
    • 减少数据的处理量

使用Limit分页

语法:SELECT * from user limit startIndex,pageSize;
SELECT * from user limit 3;  #[0,n]

使用Mybatis实现分页,核心SQL

  1. 接口
//分页
List<User> getUserByLimit(Map<String,Integer> map);

2.Mapper.xml

<select id="getUserByLimit" parameterType="map" resultMap="UserMap">
    select * from  user limit #{startIndex},#{pageSize}
</select>

3.测试

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

RowBounds分页

不再使用SQL实现分页

接口

//分页2
List<User> getUserByRowBounds();

mapper.xml

<!--分页2-->
<select id="getUserByRowBounds" resultMap="UserMap">    
	select * from  mybatis.user
</select>

测试

@Test
public void getUserByRowBounds(){
    SqlSession sqlSession = MybatisUtils.getSqlSession();
    //RowBounds实现RowBounds rowBounds = new RowBounds(1, 2);
    //通过Java代码层面实现分页
    List <User> userList = sqlSession.selectList("com.saxon.dao.UserMapper.getUserByRowBounds",null,rowBounds);    
    for (User user : userList) {    
        System.out.println(user);    
    }    
    sqlSession.close();   
}
posted @ 2021-06-12 09:35  saxon宋  阅读(52)  评论(0)    收藏  举报