最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MyBatis中的limit分頁設(shè)置

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

MyBatis limit分頁設(shè)置

錯誤的寫法

<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之后的語句不允許的變量不允許進(jìn)行算數(shù)運(yùn)算,會報(bào)錯。

正確的寫法一

<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>

分析:

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

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

總結(jié)

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 學(xué)會IDEA REST Client后就可以丟掉postman了

    學(xué)會IDEA REST Client后就可以丟掉postman了

    這篇文章主要介紹了學(xué)會IDEA REST Client后就可以丟掉postman了,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • Spring Boot thymeleaf模板引擎的使用詳解

    Spring Boot thymeleaf模板引擎的使用詳解

    這篇文章主要介紹了Spring Boot thymeleaf模板引擎的使用詳解,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03
  • java?-jar命令詳解之運(yùn)行JAR文件、傳遞參數(shù)與性能調(diào)優(yōu)

    java?-jar命令詳解之運(yùn)行JAR文件、傳遞參數(shù)與性能調(diào)優(yōu)

    這篇文章主要介紹了java?-jar命令詳解之運(yùn)行JAR文件、傳遞參數(shù)與性能調(diào)優(yōu)的相關(guān)資料,java?-jar命令用于運(yùn)行可執(zhí)行的JAR文件,它解析JAR文件中的META-INF/MANIFEST.MF文件來確定主類,并執(zhí)行該類的?main方法,運(yùn)行時(shí)可通過參數(shù)傳遞給主類,需要的朋友可以參考下
    2025-04-04
  • Maven打包報(bào)錯"powershell不是內(nèi)部命令"的解決方法

    Maven打包報(bào)錯"powershell不是內(nèi)部命令"的解決方法

    Maven打包時(shí)遇到"powershell不是內(nèi)部命令"的報(bào)錯,根源在于路徑中的空格,當(dāng)IDEA安裝在含空格的路徑,下面小編就和大家詳細(xì)介紹一下具體解決方法吧
    2026-02-02
  • IDEA代碼警告(warning)整理以及解決方案

    IDEA代碼警告(warning)整理以及解決方案

    在日常開發(fā)中,IntelliJ?IDEA會通過problems窗口和編輯窗口的黃色標(biāo)記提示警告,這些警告可能指示代碼存在潛在風(fēng)險(xiǎn)或需要優(yōu)化的空間,文章介紹了如何利用IDEA檢查代碼,以及針對常見警告的原因和解決辦法
    2024-10-10
  • 詳解Java關(guān)于時(shí)間格式化的方法

    詳解Java關(guān)于時(shí)間格式化的方法

    這篇文章主要介紹了詳解Java關(guān)于時(shí)間格式化的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • SpringBoot請求響應(yīng)方式示例詳解

    SpringBoot請求響應(yīng)方式示例詳解

    這篇文章主要介紹了SpringBoot請求響應(yīng)的相關(guān)操作,本文通過示例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2024-06-06
  • Java+Selenium設(shè)置元素等待的方法詳解

    Java+Selenium設(shè)置元素等待的方法詳解

    本文主要介紹如何使用java代碼利用Selenium操作瀏覽器,某些網(wǎng)頁元素加載慢,如何操作元素就會把找不到元素的異常,此時(shí)需要設(shè)置元素等待,等待元素加載完,再操作,感興趣的可以了解一下
    2023-01-01
  • JAVA Web.xml加載順序過程詳解

    JAVA Web.xml加載順序過程詳解

    這篇文章主要介紹了JAVA Web.xml加載順序過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-12-12
  • java多線程中的異常處理機(jī)制簡析

    java多線程中的異常處理機(jī)制簡析

    在java多線程程序中,所有線程都不允許拋出未捕獲的checked exception,也就是說各個線程需要自己把自己的checked exception處理掉,需要了解的朋友可以參考下
    2012-11-11

最新評論

商都县| 巴彦县| 夏河县| 五常市| 闸北区| 伊宁县| 叶城县| 巴中市| 额济纳旗| 顺义区| 乐都县| 浙江省| 客服| 松江区| 稷山县| 洪洞县| 永定县| 古田县| 花莲县| 鹰潭市| 高邮市| SHOW| 马鞍山市| 长岛县| 密云县| 平武县| 柘荣县| 孟村| 浦城县| 米泉市| 定陶县| 黑水县| 长汀县| 天津市| 南漳县| 惠安县| 马边| 成安县| 始兴县| 祁门县| 凤翔县|