如何在Mybatis中实现分页查询

avatar
作者
筋斗云
阅读量:0

在 MyBatis 中,可以通过编写自定义的分页查询语句来实现分页功能。以下是实现分页查询的步骤:

  1. 创建分页参数类(PageParam):
public class PageParam {     private int pageNum; // 当前页码     private int pageSize; // 每页显示的记录数      // 构造方法、getter 和 setter 省略 } 
  1. 在 MyBatis 的映射文件中编写分页查询语句:

首先,需要在 MyBatis 的映射文件中添加一个 resultMap,用于映射查询结果到实体类。例如,假设有一个 User 实体类,可以创建如下 resultMap:

<resultMap id="UserResultMap" type="com.example.entity.User">     <id property="id" column="id"/>     <result property="username" column="username"/>     <result property="email" column="email"/> </resultMap> 

接下来,编写分页查询语句。这里以 MySQL 数据库为例,使用 rowNum 分页:

<select id="selectPageUser" resultMap="UserResultMap">     SELECT * FROM user     ORDER BY id     LIMIT #{pageNum}, #{pageSize} </select> 

注意,这里的 #{pageNum} 和 #{pageSize} 是分页参数,它们将在运行时被替换为实际的值。

  1. 在 DAO 层编写分页查询方法:

在 DAO 层,创建一个方法,接收分页参数作为参数,并返回分页查询结果。例如:

public interface UserDao {     List<User> selectPageUser(PageParam pageParam); } 
  1. 在 Service 层调用分页查询方法:

在 Service 层,注入 UserDao,并调用 selectPageUser 方法进行分页查询。例如:

@Service public class UserService {     @Autowired     private UserDao userDao;      public PageInfo<User> selectPageUser(int pageNum, int pageSize) {         PageParam pageParam = new PageParam();         pageParam.setPageNum(pageNum);         pageParam.setPageSize(pageSize);          List<User> userList = userDao.selectPageUser(pageParam);         int total = userDao.selectUserCount(); // 查询总记录数          return new PageInfo<>(pageNum, pageSize, total, userList);     } } 

这里,我们使用了 PageInfo 类来封装分页查询结果,包括当前页码、每页显示的记录数、总记录数和查询结果列表。你需要自己实现 PageInfo 类,或者使用第三方分页库,如 MyBatis-Plus。

现在,你可以在你的应用程序中使用分页查询功能了。只需传入当前页码和每页显示的记录数,即可获取分页后的查询结果。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!