实现分页功能
在学习mybatis等持久层框架的时候,会经常对数据进行增删改查操作,使用最多的是对数据库进行查询操作,如果查询大量数据的时候,我们往往使用分页进行查询,也就是每次处理小部分数据,这样对数据库压力就在可控范围内。
使用limit实现分页
sql的语法:
select * from tableName limit i,n
# tableName:表名
# i:为查询结果的索引值(默认从0开始),当i=0时可省略i
# n:为查询结果返回的数量
# i与n之间使用英文逗号","隔开
# limit n 等同于 limit 0,n
修改userMapper.xml
文件:
<select id="getUserList" resultMap="userMap">
select * from mybatis.user limit #{startIndex}, #{pageSize};
</select>
修改接口, 参数为map
修改测试类:
@Test
public void getUserList(){
try(SqlSession sqlSession = MybatisUtils.getSqlSession()){
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
int currentPage = 1;//当前页面
int pageSize = 2;//页面的大小
HashMap<String, Integer> map = new HashMap<>();
map.put("startIndex", (currentPage-1)*pageSize);
//起始位置 = (当前页面 - 1 ) * 页面大小
map.put("pageSize", pageSize);
List<User> userList = mapper.getUserList(map);
for (User user : userList) {
System.out.println(user);
}
}
}
测试结果: