MyBatis可以通过多种方式实现分页:
- 使用 RowBounds 对象
RowBounds类可以指定分页中的起始行和条数。
int start = (pageNum -1) * pageSize;
int end = pageSize;
RowBounds rowBounds = new RowBounds(start, end);
List<User> list = sqlSession.selectList(
"com.itzhimei.mapper.UserMapper.selectAll", null, rowBounds);
在Mapper映射中:
<select id="selectAll" resultType="com.itzhimei.pojo.User">
select * from user
</select>
- 使用 limit 关键字
例如MySQL、PostgreSQL等支持limit分页。
<select id="selectAll" resultType="com.itzhimei.pojo.User">
select * from user limit #{start}, #{pageSize}
</select>
设置参数:
map.put("start", start);
map.put("pageSize", pageSize);
- 使用分页插件
如PageHelper插件,直接在代码中使用:
PageHelper.startPage(pageNum, pageSize);
List<User> list = sqlSession.selectList(
"com.itzhimei.mapper.UserMapper.selectAll");
PageHelper会自动在SQL后添加分页条件。
总的来说,MyBatis可以通过以下方式实现分页:
- 使用RowBounds对象
- 在SQL中使用limit分页
- 使用第三方分页插件