MyBatis提供了兩種方法來實現批量查詢分頁:
RowBounds
實現分頁查詢:RowBounds
是MyBatis提供的一個分頁查詢的實現類,它可以在查詢時指定查詢的起始位置和查詢的數量。你可以在Mapper接口中定義一個方法,接受RowBounds
作為參數,并在SQL語句中使用LIMIT
關鍵字來實現分頁查詢。示例如下:// Mapper接口定義
List<User> getUsers(RowBounds rowBounds);
// 在SQL語句中使用LIMIT關鍵字實現分頁查詢
<select id="getUsers" resultType="User">
SELECT * FROM user
LIMIT #{offset}, #{limit}
</select>
在調用該方法時,需要創建一個RowBounds
對象,并傳入起始位置和查詢數量。例如:
RowBounds rowBounds = new RowBounds(offset, limit);
List<User> users = mapper.getUsers(rowBounds);
PageHelper
插件實現分頁查詢:PageHelper
是一個MyBatis的分頁插件,它可以自動對查詢結果進行分頁處理。你需要在項目中添加PageHelper
的依賴,并在MyBatis的配置文件中配置插件。然后,在Mapper接口中定義一個方法,接受頁碼和每頁數量作為參數,并在查詢方法上添加@Select
注解,同時在查詢語句中使用特殊的語法來指定分頁查詢。示例如下:// Mapper接口定義
@Select("SELECT * FROM user")
List<User> getUsersByPage(@Param("pageNum") int pageNum, @Param("pageSize") int pageSize);
在調用該方法時,PageHelper
會自動將查詢結果進行分頁處理。例如:
PageHelper.startPage(pageNum, pageSize);
List<User> users = mapper.getUsersByPage(pageNum, pageSize);
PageHelper
還提供了其他一些常用的分頁方法,如PageHelper.offsetPage()
可以用于指定起始位置和查詢數量,PageHelper.orderBy()
可以用于指定排序字段等。
以上是MyBatis批量查詢分頁的兩種實現方式,你可以根據具體的情況選擇其中一種來使用。