分页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); HashMapmap = 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); ListuserList = 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/
了解即可。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)