分页1. 使用Limit分页2. 使用RowBounds分页3. 插件实现
分页为什么要用分页?
较少数据的处理量 1. 使用Limit分页
语法:select * from user limit startIndex,pageSize; select * from user limit 3; # [0,n]
编写接口UserMapper.java:
// 分页1 ListgetUserByLimit(Map map);
修改UserMapper.xml
select * from user limit #{startIndex},#{pageSize};
编写测试方法:
public class UserDaoTest {
static Logger logger = Logger.getLogger(UserDaoTest.class);
@Test
public void getUserByLimit(){
logger.debug("进入getUserByLimit");
SqlSession sqlSession = MyBatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
HashMap map = new HashMap<>();
map.put("startIndex",0);
map.put("pageSize",2);
List userByLimit = mapper.getUserByLimit(map);
for (User user : userByLimit) {
logger.info(user);
}
sqlSession.close();
}
}
2. 使用RowBounds分页这里使用的以map为参数的传递方法。
编写接口UserMapper.java:
// 分页2 ListgetUserByRowBounds();
说明:不需要给参数,按照查询全部的方式编写接口。
修改UserMapper.xml
说明:用到了结果集映射
编写测试方法:
public class UserDaoTest {
static Logger logger = Logger.getLogger(UserDaoTest.class);
@Test
public void getUserByRowBounds(){
logger.debug("getUserByRowBounds");
SqlSession sqlSession = MyBatisUtils.getSqlSession();
// 使用RowBounds实现分页
RowBounds rowBounds = new RowBounds(0, 2);
List userList = sqlSession.selectList("com.xxc.dao.UserMapper.getUserByRowBounds",null,rowBounds);
for (User user : userList) {
logger.debug(user);
}
sqlSession.close();
}
}
3. 插件实现说明:使用sqlSession的selectList方法,将rowBounds作为一个参数。
PageHelper文档:
https://pagehelper.github.io/docs/howtouse/
了解即可。



