<input id="0qass"><u id="0qass"></u></input>
  • <input id="0qass"><u id="0qass"></u></input>
  • <menu id="0qass"><u id="0qass"></u></menu>

    【MyBatis&MyBatis-plus】分頁查詢避免兩次查詢同時返回總數和數據

    mapper的xml文件可以按如下方式來寫:

    	<!-- 用來記錄分頁查詢時的所有數據量,避免出現分頁查詢時需要查詢兩次 -->
    	<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);
    

    service層:

    Mapper接口實例.selectPage(Integer pageNo,Integer pageSize);
    

    controller層:

    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上加上這個配置就可以了。

    ??2020 CSDN 皮膚主題: 精致技術 設計師:CSDN官方博客 返回首頁
    多乐彩