思考:为什么要分页?
缩小数据的处理量
1、应用Limit分页
语法:
select * from user limit startIndex,pageSize;select * from user limit 3;#[0,n]
应用Mybatis实现分页,外围SQL
接口
/** * 分页查问 * @return */ List<User> getUserByLimt(Map<String,Integer> map);
Mapper.xml
<!--分页实现查问 -->
<select id="getUserByLimt" parameterType="map" resultMap="UserMap">
select * from mybatis.user limit #{startIndex},#{pageSize}
</select>
//测试 public void getUserByLimt(){ SqlSession sqlsession = MybatisUtil.getSqlsession(); UserMapper mapper = sqlsession.getMapper(UserMapper.class); HashMap<String, Integer> map = new HashMap<String, Integer>(); map.put("startIndex",0); map.put("pageSize",3); List<User> userByLimt = mapper.getUserByLimt(map); for (User user : userByLimt) { System.out.println(user); } }
2、RowBounds分页
不在应用SQL实现分页
接口
/** * * @return */ List<User> getUserByRowBounds();
Mapper.xml
<!--分页实现查问 -->
<select id="getUserByRowBounds" resultMap="UserMap"> select * from mybatis.user</select>
//测试public void getUserByRowBounds(){ SqlSession sqlsession = MybatisUtil.getSqlsession(); //RowBounds实现 RowBounds rowBounds = new RowBounds(1, 2); //通过java层面实现分页 List<User> list = sqlsession.selectList("com.aostarit.dao.UserMapper.getUserByRowBounds",null,rowBounds); for (User user : list) { System.out.println(user); } //敞开sqlSession sqlsession.close();}