欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MyBatis limit分頁設(shè)置的實(shí)現(xiàn)

 更新時(shí)間:2021年04月04日 11:30:12   作者:timchen525  
這篇文章主要介紹了MyBatis limit分頁設(shè)置的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

錯(cuò)誤的寫法:

<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}; // 錯(cuò)誤
</select>

 在MyBatis中LIMIT之后的語句不允許的變量不允許進(jìn)行算數(shù)運(yùn)算,會(huì)報(bào)錯(cuò)。

 正確的寫法一:

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

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

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

到此這篇關(guān)于MyBatis limit分頁設(shè)置的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)MyBatis limit分頁內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java8新特性之Stream API詳解

    Java8新特性之Stream API詳解

    這篇文章主要介紹了Java8新特性之StreamAPI詳解,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04
  • Spring中的AOP面向切面編程詳解

    Spring中的AOP面向切面編程詳解

    這篇文章主要介紹了Spring中的AOP面向切面編程詳解,AOP?即面向切面編程,和?OOP面向?qū)ο缶幊填愃?也是一種編程思想,AOP采取橫向抽取機(jī)制(動(dòng)態(tài)代理),取代了傳統(tǒng)縱向繼承機(jī)制的重復(fù)性代碼,其應(yīng)用主要體現(xiàn)在事務(wù)處理、日志管理、權(quán)限控制等方面,需要的朋友可以參考下
    2024-01-01
  • 詳解Java從后臺(tái)重定向(redirect)到另一個(gè)項(xiàng)目的方法

    詳解Java從后臺(tái)重定向(redirect)到另一個(gè)項(xiàng)目的方法

    這篇文章主要介紹了詳解Java從后臺(tái)重定向(redirect)到另一個(gè)項(xiàng)目的方法,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2017-04-04
  • 劍指Offer之Java算法習(xí)題精講字符串與二叉搜索樹

    劍指Offer之Java算法習(xí)題精講字符串與二叉搜索樹

    跟著思路走,之后從簡(jiǎn)單題入手,反復(fù)去看,做過之后可能會(huì)忘記,之后再做一次,記不住就反復(fù)做,反復(fù)尋求思路和規(guī)律,慢慢積累就會(huì)發(fā)現(xiàn)質(zhì)的變化
    2022-03-03
  • springboot項(xiàng)目攔截前端請(qǐng)求中的特殊字符串(解決方案)

    springboot項(xiàng)目攔截前端請(qǐng)求中的特殊字符串(解決方案)

    springboot項(xiàng)目中,需要對(duì)前端請(qǐng)求數(shù)據(jù)進(jìn)行過濾,攔截特殊字符,本文通過實(shí)例代碼給大家分享完美解決方案,感興趣的朋友一起看看吧
    2023-10-10
  • 淺談線程通信wait,notify作用

    淺談線程通信wait,notify作用

    這篇文章主要介紹了淺談線程通信wait,notify作用,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2017-12-12
  • EasyCode插件使用詳解(推薦)

    EasyCode插件使用詳解(推薦)

    EasyCode是idea的一個(gè)插件,這個(gè)插件功能很強(qiáng)大,今天通過本文給大家分享EasyCode插件使用詳解,需要的朋友可以參考下
    2020-09-09
  • MapReduce2框架的原理解析

    MapReduce2框架的原理解析

    這篇文章主要圍繞MapReduce2框架原理介紹的,文中有詳細(xì)的代碼示例,對(duì)學(xué)習(xí)有一定的幫助,需要的朋友可以借鑒參考
    2023-04-04
  • Linux中JDK安裝配置教程

    Linux中JDK安裝配置教程

    這篇文章主要為大家詳細(xì)介紹了Linux中JDK安裝配置教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • Spring中@Configuration注解和@Component注解的區(qū)別詳解

    Spring中@Configuration注解和@Component注解的區(qū)別詳解

    這篇文章主要介紹了Spring中@Configuration注解和@Component注解的區(qū)別詳解,@Configuration 和 @Component 到底有何區(qū)別呢?我先通過如下一個(gè)案例,在不分析源碼的情況下,小伙伴們先來直觀感受一下這兩個(gè)之間的區(qū)別,需要的朋友可以參考下
    2023-09-09

最新評(píng)論