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