分页
好处:减少数据的处理量
方法一使用Limit分页
实体类
//实体类
public class User {
private int id;
private String name;
private String password;
public User(){
}
public User(int id, String name, String password){
this.id = id;
this.name = name;
this.password = password;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString(){
return "User{"+"id="+id+",name='"+name + '\''+",password'" + password+'\''+'}';
}
}
接口
//分页
List<User> getUserByLimit(Map<String,Integer> map);
Mapper.xml
<!--//分页-->
<select id="getUserByLimit" parameterType="map" resultMap="UserMap">
select * from mybatis.user limit #{startIndex},#{pageSize}
</select>
测试
@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",1);
map.put("pageSize",2);
List<User> userList = mapper.getUserByLimit(map);
for (User user : userList) {
System.out.println(user);
}
sqlSession.close();
}
方法二使用RowBounds分页
接口
//分页2
List<User> getUserByRowBounds();
mapper.xml
<!--分页-->
<select id="getUserByRowBounds" resultMap="UserMap">
select * from mybatis.user
</select>
测试
@Test
public void getUserByRowBounds(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
//RowBounds实现
RowBounds rowBounds = new RowBounds(1, 2);
//通过Java代码层面实现分页
List<User> userList = sqlSession.selectList("dao.UserMapper.getUserByRowBounds");
for (User user : userList) {
System.out.println(user);
}
sqlSession.close();
}