MySql分页实现:
limit startIndex,pageNum
mapper映射文件:
<select id="selectAll" parameterType="Map" resultType="enus">
<!-- select * from user where -->
<!-- id=#{id} -->
select * from user limit #{startIndex},#{pageSize}
</select>
Dao中的写法:
public List<User> getAll(int currentPage,int pageSize ) throws Exception{
SqlSession session =MyBatisUtil.getSession();
Map<String,Integer> map=new HashMap<String,Integer>();
map.put("startIndex", (currentPage-1)*pageSize);
map.put("pageSize", pageSize);
List<User> list=session.selectList("entity.userMapper.selectAll",map);
session.close();
return list;
}
不用为参数设置类,可以采用map结构来解决这个问题
通过RowBounds来实现:
Mapper文件不用做任何改变
<select id="getAll" resultType="enus">
select * from user
</select>
Dao中需要新建RowBounds对象:
public List<User> getAll(int currentPage,int pageSize ) throws Exception{
SqlSession session =MyBatisUtil.getSession();
RowBounds rowBounds=new RowBounds((currentPage-1)*pageSize,pageSize);
List<User> list=session.selectList("entity.userMapper.getAll",null,rowBounds);
session.close();
return list;
}
测试:
public class Test2 {
public static void main(String[] args) throws Exception {
UserDao userdao = new UserDao();
List<User> list= userdao.getAll(1, 2);
for (User u : list) {
System.out.println(u);
}
}
}
结果: