分页
思考:为啥要分页?--------------减少数据的处理量
使用limit分页
– 语法
select * from `user` limit startIndex,pageSize;
select * from `user` limit 2;
– 相当于
select * from `user` limit 0,2;
使用mybatis实现分页,核心sql
1、写接口
List<user> getUserByLimit(Map<String,Integer> map);
2、xml中注册mapper
<resultMap id="Map" type="user">
<result column="id" property="id"/>
<result column="name" property="name"/>
<result column="pwd" property="password"/>
</resultMap>
<select id="getUserByLimit" parameterType="map" resultMap="Map">
select *from mybatis.user limit #{startIndex},#{pagesize}
</select>
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",0);
map.put("pagesize",2);
List<user> userByLimit = mapper.getUserByLimit(map);
for (user user : userByLimit) {
System.out.println(user);
}
sqlSession.close();
}
RowBounds分页
接口
/**
* 分页查询
* @return
*/
List<User> getUserByRowBounds();
Mapper.xml
<select id="getUserByRowBounds" resultMap="userMap">
select * from `user`
</select>
测试
@Test
public void getUserByRowBounds() {
SqlSession sqlSession = null;
try {
sqlSession = MybatisUtils.getSqlSession();
RowBounds rowBounds = new RowBounds(1,2);
List<User> userList = sqlSession.selectList("com.zyy.dao.UserMapper.getUserByRowBounds",null, rowBounds);
for (User user : userList) {
logger.info(user);
}
} finally {
if (sqlSession != null) {
sqlSession.close();
}
}
}
分页插件
官方文档:点这里
使用方法:点这里