Mybatis提供了兩種方法來實(shí)現(xiàn)分頁查詢:
在Mapper方法中添加一個(gè)RowBounds參數(shù),用于指定查詢的偏移量和限制數(shù)量。
在SQL語句中使用LIMIT
關(guān)鍵字來指定查詢的偏移量和限制數(shù)量。
在查詢結(jié)果中,只會(huì)返回指定偏移量和數(shù)量的數(shù)據(jù)。
例如:
// Mapper接口方法
List<User> getUsers(@Param("offset") int offset, @Param("limit") int limit);
// Mapper XML配置文件
<select id="getUsers" resultType="User">
SELECT * FROM users
LIMIT #{offset}, #{limit}
</select>
// 調(diào)用Mapper方法
List<User> users = userDao.getUsers(0, 10); // 查詢偏移量為0,限制數(shù)量為10的數(shù)據(jù)
在項(xiàng)目中引入PageHelper插件的依賴。
在Mapper接口方法上使用PageHelper.startPage()方法來開啟分頁查詢,并傳入頁碼和每頁顯示數(shù)量。
執(zhí)行Mapper方法后,PageHelper會(huì)自動(dòng)將查詢結(jié)果封裝成Page對象,其中包含了分頁相關(guān)的信息。
例如:
// 引入PageHelper插件的依賴
// 在Mapper接口方法中使用PageHelper.startPage()方法
List<User> getUsers(@Param("pageNum") int pageNum, @Param("pageSize") int pageSize);
// 調(diào)用Mapper方法
PageHelper.startPage(1, 10); // 查詢第1頁,每頁顯示10條數(shù)據(jù)
List<User> users = userDao.getUsers(1, 10);
// 獲取分頁相關(guān)信息
PageInfo<User> pageInfo = new PageInfo<>(users);
int total = pageInfo.getTotal(); // 獲取總記錄數(shù)
以上兩種方法都可以實(shí)現(xiàn)分頁查詢,具體選擇哪種方法取決于你的需求和項(xiàng)目情況。