Mybatisはページングをどのように実装するのか。

RowBoundsオブジェクトを使用して、MyBatisでページングクエリを実装することができます。

最初、Mapperインターフェース内にメソッドを定義し、そのメソッドのパラメータにはRowBoundsオブジェクトと他の検索条件パラメータを含める。メソッドの戻り値はListオブジェクトとなる。

List<User> getUsersByPage(RowBounds rowBounds, @Param("param1") String param1, @Param("param2") String param2);

その後、MapperのXMLファイルに対応するSQL文を記述し、LIMITキーワードを使用してページングクエリを実装します。LIMITキーワードは、クエリ結果の行数を制限するために使用され、最初のパラメータはクエリ結果のオフセット、2番目のパラメータはページごとのレコード数です。

<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は1ページ当たりのレコード数を表し、offsetはクエリ結果のオフセットを示します。これらの情報に基づいて、RowBoundsオブジェクトのパラメータを計算することができます。次に、Mapperインターフェイスのメソッドを呼び出して、ページネーション検索を実行し、ページごとの結果usersを取得します。

bannerAds