mybatis批量查詢分頁(yè)怎么實(shí)現(xiàn)

小億
126
2023-09-04 22:52:43

MyBatis提供了兩種方法來(lái)實(shí)現(xiàn)批量查詢分頁(yè):

  1. 使用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);
  1. 使用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)使用。

0