7.limit分页
分页是为了减少数据的处理量
使用分页语法
select * from user limit 0,3;
如果第一个参数没有给定,默认从0开始。
7.1使用mybatis来实现limit分页:
-
1.分页接口UserMapper.java
//limit分页 List<User> getUserBylimit(Map<String,Integer> map);
-
2.UserMapper.xml
<!--结果集映射--> <resultMap id="UserMap" type="com.kuang.pojo.User"> <result column="id" property="id"></result> <result column="name" property="name"></result> <result column="pwd" property="password"></result> </resultMap> <!--分页查询,使用了结果集映射,resultMap--> <select id="getUserBylimit" parameterType="map" resultMap="UserMap"> select * from mybatis.user limit #{startIndex},#{pageIndex}; </select>
这里我们使用了Map,所以parameterType必须是map(接口里面的参数)
-
3.测试类
@Test public void getUserBylimit(){ SqlSession sqlSession = MybatisUtils.getSqlSession(); UserMapper mapper = sqlSession.getMapper(UserMapper.class); HashMap<String, Integer> map = new HashMap<String, Integer>(); map.put("startIndex",2); map.put("pageIndex",5); List<User> list = mapper.getUserBylimit(map); for (User user:list ) { System.out.println(user); } sqlSession.close(); }
7.2RowBounds分页
-
接口
//rowBounds分页 List<User> getUserByRowBounds();
-
UserMapper.xml
<!--结果集映射--> <resultMap id="UserMap" type="com.kuang.pojo.User"> <result column="id" property="id"></result> <result column="name" property="name"></result> <result column="pwd" property="password"></result> </resultMap> <select id="getUserByRowBounds" parameterType="map" resultMap="UserMap"> select * from mybatis.user </select>
-
测试类
//RowBounds分页 @Test public void gerUserByBounds(){ SqlSession sqlSession = MybatisUtils.getSqlSession(); RowBounds rowBounds = new RowBounds(1,3); //通过java代码层面获取数据,实现分页 List<User> userList = sqlSession.selectList("com.kuang.dao.UserMapper.getUserByRowBounds",null,rowBounds); for (User user: userList ) { System.out.println(user); } sqlSession.close(); }