亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

MyBatis中的limit分頁設置

 更新時間:2023年11月24日 17:05:32   作者:timchen525  
這篇文章主要介紹了MyBatis中的limit分頁設置方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

MyBatis limit分頁設置

錯誤的寫法

<select id="queryMyApplicationRecord" parameterType="MyApplicationRequest" resultMap="myApplicationMap">
    SELECT
    a.*,
    FROM
    tb_user a
    WHERE 1=1
    <if test="ids != null and ids.size()!=0">
        AND a.id IN
        <foreach collection="ids" item="id" index="index"
                 open="(" close=")" separator=",">
            #{id}
        </foreach>
    </if>
    <if test="statusList != null and statusList.size()!=0">
        AND a.status IN
        <foreach collection="statusList" item="status" index="index"
                 open="(" close=")" separator=",">
            #{status}
        </foreach>
    </if>
    ORDER BY a.create_time desc
    LIMIT (#{pageNo}-1)*#{pageSize},#{pageSize};  // 錯誤
</select>

在MyBatis中LIMIT之后的語句不允許的變量不允許進行算數運算,會報錯。

正確的寫法一

<select id="queryMyApplicationRecord" parameterType="MyApplicationRequest" resultMap="myApplicationMap">
    SELECT
    a.*,
    FROM
    tb_user a
    WHERE 1=1
    <if test="ids != null and ids.size()!=0">
        AND a.id IN
        <foreach collection="ids" item="id" index="index"
                 open="(" close=")" separator=",">
            #{id}
        </foreach>
    </if>
    <if test="statusList != null and statusList.size()!=0">
        AND a.status IN
        <foreach collection="statusList" item="status" index="index"
                 open="(" close=")" separator=",">
            #{status}
        </foreach>
    </if>
    ORDER BY a.create_time desc
    LIMIT ${(pageNo-1)*pageSize},${pageSize}; (正確)
</select>

正確的寫法二:(推薦)

<select id="queryMyApplicationRecord" parameterType="MyApplicationRequest" resultMap="myApplicationMap">
    SELECT
    a.*,
    FROM
    tb_user a
    WHERE 1=1
    <if test="ids != null and ids.size()!=0">
        AND a.id IN
        <foreach collection="ids" item="id" index="index"
                 open="(" close=")" separator=",">
            #{id}
        </foreach>
    </if>
    <if test="statusList != null and statusList.size()!=0">
        AND a.status IN
        <foreach collection="statusList" item="status" index="index"
                 open="(" close=")" separator=",">
            #{status}
        </foreach>
    </if>
    ORDER BY a.create_time desc
    LIMIT #{offSet},#{limit}; (推薦,代碼層可控)
</select>

分析:

方法二的寫法,需要再請求參數中額外設置兩個get函數,如下:

@Data
public class QueryParameterVO {
 
    private List<String> ids;
 
    private List<Integer> statusList;
 
    // 前端傳入的頁碼
    private int pageNo;  // 從1開始
 
    // 每頁的條數
    private int pageSize;
 
    // 數據庫的偏移
    private int offSet;
 
    // 數據庫的大小限制
    private int limit;
 
    // 這里重寫offSet和limit的get方法
    public int getOffSet() {
        return (pageNo-1)*pageSize;
    }
 
    public int getLimit() {
        return pageSize;
    }
}

總結

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Java封裝、繼承、多態(tài)三大特征的理解

    Java封裝、繼承、多態(tài)三大特征的理解

    封裝、繼承、多態(tài)三大特征是java中比較常用的,務必要掌握,下面給大家介紹Java封裝、繼承、多態(tài)三大特征的理解,有不清楚的朋友可以一起學習下
    2016-06-06
  • MyBatis-Plus實現多表聯(lián)查的方法實戰(zhàn)

    MyBatis-Plus實現多表聯(lián)查的方法實戰(zhàn)

    這篇文章主要給大家介紹了關于MyBatis-Plus實現多表聯(lián)查的方法,MyBatis Plus是一款針對MyBatis框架的增強工具,它提供了很多方便的方法來實現多表聯(lián)查,需要的朋友可以參考下
    2023-07-07
  • java調用FFmpeg實現視屏壓縮功能的詳細步驟

    java調用FFmpeg實現視屏壓縮功能的詳細步驟

    這篇文章主要介紹了java調用FFmpeg實現視屏壓縮功能,本文簡單的展示了java調用FFmpeg命令實現視屏的壓縮的詳細步驟,需要的朋友可以參考下
    2021-09-09
  • Java?Stream函數式編程管道流結果處理

    Java?Stream函數式編程管道流結果處理

    這篇文章主要為大家介紹了Java?Stream函數式編程管道流結果處理的示例過程解析需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步
    2022-03-03
  • Springboot單元測試編寫實踐

    Springboot單元測試編寫實踐

    在日常的開發(fā)過程中,為了提高代碼的可靠性和健壯性,同時也是檢測代碼的質量,減少測試環(huán)節(jié)的問題,會對完成的業(yè)務功能代碼編寫單元測試,在本文中,將分享一些單元測試的實踐和心得,需要的朋友可以參考下
    2023-11-11
  • 從源碼角度看spring mvc的請求處理過程

    從源碼角度看spring mvc的請求處理過程

    這篇文章主要介紹了從源碼角度看spring mvc的請求處理過程,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,,需要的朋友可以參考下
    2019-06-06
  • java設計模式-組合模式詳解

    java設計模式-組合模式詳解

    這篇文章主要介紹了JAVA設計模式之組合模式,簡單說明了組合模式的原理,并結合實例分析了java組合模式的具體用法,需要的朋友可以參考下
    2021-07-07
  • Java中的分布式鎖與同步鎖使用詳解

    Java中的分布式鎖與同步鎖使用詳解

    這篇文章主要介紹了Java中的分布式鎖與同步鎖使用詳解,在分布式系統(tǒng)中,由于存在多個節(jié)點并行執(zhí)行任務,可能會出現競爭條件和數據不一致的問題,分布式鎖通過約束同一時刻只有一個節(jié)點能夠獲得鎖的方式,確保了對共享資源的獨占訪問,需要的朋友可以參考下
    2023-07-07
  • URLConnection發(fā)送HTTP請求的方法_動力節(jié)點Java學院整理

    URLConnection發(fā)送HTTP請求的方法_動力節(jié)點Java學院整理

    這篇文章主要介紹了URLConnection發(fā)送HTTP請求的方法,主要介紹了如何通過Java(模擬瀏覽器)發(fā)送HTTP請求,有興趣的可以了解一下
    2017-07-07
  • Java中各種集合判空方法總結

    Java中各種集合判空方法總結

    最近接觸集合比較多,經常對于集合是否為空做判斷,下面這篇文章主要給大家介紹了關于Java中各種集合判空方法總結的相關資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2023-12-12

最新評論