7、分页
为什么要分页?
- 减少数据的处理量
7.1、使用limit分页
语法:
select * from users limit startIndex,pageSize;
select * from users limit 3;
使用Mybatis实现分页,核心SQL
-
接口
List<User> getUserLimit(Map<String,Integer> map);
-
mapper.xml
<select id="getUserLimit" parameterType="map" resultMap="UserMap"> select * from users limit #{startIndex},#{pageSize} </select>
-
junit单元测试
@Test public void getUserLimit(){ SqlSession sqlSession; try { sqlSession = MybatisUtils.getSqlSession(); UserMapper mapper = sqlSession.getMapper(UserMapper.class); HashMap<String,Integer> map = new HashMap<String,Integer>(); map.put("startIndex",2); map.put("pageSize",2); List<User> users = mapper.getUserLimit(map); for (User user : users) { System.out.println(user); } }finally { MybatisUtils.closeSqlSession(); } }
7.2、RowBounds分页
不再使用SQL实现分页
-
接口
List<User> getUserByRowBounds();
-
mapper.xml
<select id="getUserByRowBounds" resultMap="UserMap"> select * from users </select>
-
junit单元测试
@Test public void getUserByRowBounds(){ SqlSession sqlSession = MybatisUtils.getSqlSession(); RowBounds rowBounds = new RowBounds(1,2); List<User> users = sqlSession.selectList("com.kuber.dao.UserMapper.getUserByRowBounds", null, rowBounds); for (User user : users) { System.out.println(user); } sqlSession.close(); }
7.3、分页插件
了解,可以参考文档使用,如果以后使用,知道是什么东西