【MyBatis&MyBatis-plus】ページング・クエリーは、合計数とデータを同時に返す2回のクエリーを回避します.
5446 ワード
mapperのxmlファイルは、次のように書くことができます.
mapperインタフェース:
サービス層:
コントロール層:
注意:使用時にはプロファイルでsqlのマルチステートメント実行を許可するように設定する必要があります:allowMultiQueries=true、sqlのurlにこの構成を加えればいいです.
<resultMap type="java.lang.Integer" id="count">
<result column="total"/>
resultMap>
<select id="selectPage" resultMap=" resultMap,count">
SELECT SQL_CALC_FOUND_ROWS * FROM
WHERE ID in (SELECT ID from (SELECT ID FROM A LIMIT ${(pageNo-1)*pageSize},#{pageSize}) AS t)
order by ID;
SELECT FOUND_ROWS(*) AS total;
select>
mapperインタフェース:
List<Object> selectPage(@Param("pageNo") Integer pageNo, @Param("pageSize") Integer pageSize);
サービス層:
Mapper .selectPage(Integer pageNo,Integer pageSize);
コントロール層:
List<Object> list = Service .selectPage(pageNo,pageSize);
List< > wcenters = (List< >) list.get(0); //
Integer total = ((List<Integer>) list.get(1)).get(0);//
注意:使用時にはプロファイルでsqlのマルチステートメント実行を許可するように設定する必要があります:allowMultiQueries=true、sqlのurlにこの構成を加えればいいです.