为什么需要分页?
为了减少数据的处理量,使服务器不会因为响应数据过多时,无法及时响应,而降低用户体验
MyBatis分页方法一
通过Limit分页
接口中定义处理方法
List
<User> getUserLimit(Map
<String ,Integer> map
);
编写sql语句 startIndex:查询时的起始索引 pageSize:每次查询的数据条数
<resultMap id
="resultmap" type="user">
<result
column="pwd" property
="password"/>
</resultMap
>
<select id
="getUserLimit" parameterType
="map" resultMap
="resultmap">
select * from mybatis
.user limit
</select>
测试类调用
@Test
public void getUserLimit(){
SqlSession sqlSession
= MyBatisUtils
.getSqlSession();
UserMapper mapper
= sqlSession
.getMapper(UserMapper
.class);
HashMap
<String, Integer> map
= new HashMap<>();
map
.put("startIndex", 0);
map
.put("pageSize",3);
List
<User> userLimit
= mapper
.getUserLimit(map
);
for (User user
: userLimit
) {
System
.out
.println(user
);
}
sqlSession
.close();
}
MyBatis分页方法二
通过RowBounds分页
接口定义方法
List
<User> getUserRowLimit();
在接口对应的.xml文件中,编写sql
<select id
="getUserRowLimit" resultMap
="resultmap">
select * from mybatis
.user
</select>
测试类调用
@Test
public void getUserRowLimit(){
SqlSession sqlSession
= MyBatisUtils
.getSqlSession();
List
<User> userList
= sqlSession
.selectList("Dao.UserMapper.getUserRowLimit", null
, new RowBounds(1, 3));
for (User user
: userList
) {
System
.out
.println(user
);
}
sqlSession
.close();
}
MyBatis分页方法三
通过MyBatis的分页插件来实现:PageHelper