MyBatis可以通过RowBounds
对象来实现分页查询。
首先,在Mapper接口中定义一个方法,方法的参数中包含RowBounds
对象和其他查询条件参数。方法返回值是一个List
对象。
List<User> getUsersByPage(RowBounds rowBounds, @Param("param1") String param1, @Param("param2") String param2);
然后,在Mapper的XML文件中编写对应的SQL语句,使用LIMIT
关键字来实现分页查询。LIMIT
关键字用于限制查询结果的行数,第一个参数是查询结果的偏移量,第二个参数是每页的记录数。
<select id="getUsersByPage" resultType="User">
SELECT * FROM users
WHERE param1 = #{param1} AND param2 = #{param2}
LIMIT #{offset}, #{limit}
</select>
最后,在Java代码中调用Mapper接口的方法,传入RowBounds
对象和其他查询条件参数,即可实现分页查询。
int pageNum = 1; // 当前页码
int pageSize = 10; // 每页记录数
int offset = (pageNum - 1) * pageSize; // 计算偏移量
RowBounds rowBounds = new RowBounds(offset, pageSize);
List<User> users = userMapper.getUsersByPage(rowBounds, param1, param2);
上述代码中,pageNum
表示当前页码,pageSize
表示每页的记录数,offset
表示查询结果的偏移量,根据这些信息可以计算出RowBounds
对象的参数。然后,调用Mapper接口的方法进行分页查询,得到分页结果users
。