MyBatis可以通過RowBounds
對象來實現分頁查詢。
首先,在Mapper接口中定義一個方法,方法的參數中包含RowBounds
對象和其他查詢條件參數。方法返回值是一個List
對象。
List<User> getUsersByPage(RowBounds rowBounds, @Param("param1") String param1, @Param("param2") String param2);
然后,在Mapper的XML文件中編寫對應的SQL語句,使用LIMIT
關鍵字來實現分頁查詢。LIMIT
關鍵字用于限制查詢結果的行數,第一個參數是查詢結果的偏移量,第二個參數是每頁的記錄數。
<select id="getUsersByPage" resultType="User">
SELECT * FROM users
WHERE param1 = #{param1} AND param2 = #{param2}
LIMIT #{offset}, #{limit}
</select>
最后,在Java代碼中調用Mapper接口的方法,傳入RowBounds
對象和其他查詢條件參數,即可實現分頁查詢。
int pageNum = 1; // 當前頁碼
int pageSize = 10; // 每頁記錄數
int offset = (pageNum - 1) * pageSize; // 計算偏移量
RowBounds rowBounds = new RowBounds(offset, pageSize);
List<User> users = userMapper.getUsersByPage(rowBounds, param1, param2);
上述代碼中,pageNum
表示當前頁碼,pageSize
表示每頁的記錄數,offset
表示查詢結果的偏移量,根據這些信息可以計算出RowBounds
對象的參數。然后,調用Mapper接口的方法進行分頁查詢,得到分頁結果users
。