1.思考:为什么要实现分页
数据量太大的时候为了减少数据的处理量
2.具体实现代码依赖
1.sql语句实现分页
SELECT * FROM ljqdb.`user` LIMIT num1,num2;
从num1开始查 查num2个
num1=startIndex num2=Pagesize
Mapper.xml的编写
<select id="getUserByLimit" parameterType="map" resultType="pojo.User">
select * from ljqdb.user limit #{startIndex},#{pageSize}
</select>
Mapper以及测试类的编写
List<User> getUserByLimit(Map<String,Integer> map);
测试类:
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
Map<String,Integer> map = new HashMap<>();
map.put("startIndex",1);
map.put("pageSize",3);
List<User> userByLimit = mapper.getUserByLimit(map);
for (User user : userByLimit) {
System.out.println(user);
}
sqlSession.close();
2.RowBounds
UserMapper的编写
/**
* Gets user by row brunds.
*
* @return the user by row brunds
*/
List<User> getUserByRowBrunds();
UserMapper.xml的编写
<select id="getUserByRowBrunds" resultType="User">
select * from ljqdb.user
</select>
测试类的编写
public void gerUserByRowBounds(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
RowBounds rowBounds = new RowBounds(1, 4);
List<User> userList = sqlSession.selectList("dao.UserMapper.getUserByRowBrunds", null, rowBounds);
for (User user : userList ) {
System.out.println(user);
}
sqlSession.close();
}