学习目标:
MyBatis的分页
学习内容:
MyBatis分页类型
- Limit分页(物理分页)
- RowBounds分页(逻辑分页)
学习时间:
学习产出:
MyBatis实现分页
1、Limit实现分页(物理分页)
(1)UserMapper:
List<User> getUserList(Map<String,Integer> map);
(2)XML
<?xml version="1.0" encoding="UTF8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.UserMapper">
<resultMap id="UserMap" type="User">
<result column="pwd" property="password"/>
</resultMap>
<select id="getUserList" parameterType="map" resultMap="UserMap">
select * from user limit #{start},#{end};
</select>
</mapper>
(3)Test
@Test
public void TestLimit(){
SqlSession sqlSession = MyBatisUtil.getSqlSession();
Map<String,Integer> map = new HashMap<String,Integer>();
map.put("start",0);
map.put("end",5);
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
List<User> userList = mapper.getUserList(map);
for (User user : userList) {
System.out.println(user);
}
sqlSession.close();
}
2、RowBounds实现分页(逻辑分页)
(1)UserMapper
List<User> getUserRowBound();
(2)XML
<select id="getUserRowBounds" resultMap="UserMap">
select * from user;
</select>
(3)Test
@Test
public void TestRowBounds(){
SqlSession sqlSession = MyBatisUtil.getSqlSession();
RowBounds rowBounds = new RowBounds(0, 3);
List<User> userList = sqlSession.selectList("com.UserMapper.getUserRowBounds", null,rowBounds);
for (User user : userList) {
System.out.println(user);
}
sqlSession.close();
}