6.1使用limit分页
在mybatis04中
语法:SELECT *from user limit startIndex,pageSize;
SELECT *from user limit 3; #[0,n]
下标从0开始
增强型for循环可以通过.for来便捷完成
使用Mybatis实现分页,核心SQL
1.接口
//分页实现查询
List<User>getUserByLimit(Map<String,Integer> map);
2.Mapper.xml
//结果集映射
<resultMap id="UserMap" type="User">
<!--column数据库中的字段,property实体类中的属性-->
<!-- <result column="id" property="id"/>
<result column="name" property="name"/>-->
<!--什么不一样转什么-->
<result column="pwd" property="password"/>
</resultMap>
//分页
<select id="getUserByLimit" parameterType="map" resultMap="UserMap">
select * from mybatis.user limit #{startIndex},#{pageSize}
</select>
使用结果集映射(resyltMap),才能把对应的密码输出来,否则就是id+name没有密码,在当前这和版本,mybatis不接受parameterMap,所以换成parameterType.
3.测试
6.2 RowBounds分页
不再使用sql实现分页
-
接口
List<User>getUserByRowBounds();
-
mapper.xml //写sql语句,使用结果集映射
<!--分页--> <select id="getUserByRowBounds" resultMap="UserMap"> select * from mybatis.user </select>
-
测试
@Test
public void getUserByRowBounds(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
//RowBounds实现,
//offset第一页,limit为每页的数据
RowBounds rowBounds = new RowBounds(1,2);
//通过java代码层面实现分页
List<User> userList = sqlSession.selectList("com.kuang.dao.UserMapper.getUserByRowBounds",null,rowBounds);
for (User user : userList) {
System.out.println(user);
}
sqlSession.close();
}