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

mybatis 中 foreach collection的用法小結(jié)(三種)

 更新時(shí)間:2017年10月15日 11:47:10   投稿:mrr  
這篇文章主要介紹了mybatis 中 foreach collection的用法小結(jié)(三種),需要的朋友可以參考下

foreach的主要用在構(gòu)建in條件中,它可以在SQL語(yǔ)句中進(jìn)行迭代一個(gè)集合。

foreach元素的屬性主要有 item,index,collection,open,separator,close。

    item表示集合中每一個(gè)元素進(jìn)行迭代時(shí)的別名,
    index指 定一個(gè)名字,用于表示在迭代過(guò)程中,每次迭代到的位置,
    open表示該語(yǔ)句以什么開(kāi)始,
    separator表示在每次進(jìn)行迭代之間以什么符號(hào)作為分隔 符,
    close表示以什么結(jié)束。

在使用foreach的時(shí)候最關(guān)鍵的也是最容易出錯(cuò)的就是collection屬性,該屬性是必須指定的,但是在不同情況 下,該屬性的值是不一樣的,主要有一下3種情況:

    1. 如果傳入的是單參數(shù)且參數(shù)類型是一個(gè)List的時(shí)候,collection屬性值為list
    2. 如果傳入的是單參數(shù)且參數(shù)類型是一個(gè)array數(shù)組的時(shí)候,collection的屬性值為array
    3. 如果傳入的參數(shù)是多個(gè)的時(shí)候,我們就需要把它們封裝成一個(gè)Map了,當(dāng)然單參數(shù)也可

以封裝成map,實(shí)際上如果你在傳入?yún)?shù)的時(shí)候,在breast里面也是會(huì)把它封裝成一個(gè)Map的,map的key就是參數(shù)名,所以這個(gè)時(shí)候collection屬性值就是傳入的List或array對(duì)象在自己封裝的map里面的key 下面分別來(lái)看看上述三種情況的示例代碼:

1.單參數(shù)List的類型:  

 <select id="dynamicForeachTest" resultType="Blog">
      select * from t_blog where id in
    <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
        #{item}    
    </foreach>  
  </select> 

上述collection的值為list,對(duì)應(yīng)的Mapper是這樣的

public List dynamicForeachTest(List ids);

測(cè)試代碼:

@Test
   public void dynamicForeachTest() {
     SqlSession session = Util.getSqlSessionFactory().openSession();   
     BlogMapper blogMapper = session.getMapper(BlogMapper.class);
      List ids = new ArrayList();
      ids.add(1);
      ids.add(3);
      ids.add(6);
     List blogs = blogMapper.dynamicForeachTest(ids);
     for (Blog blog : blogs)
       System.out.println(blog);
     session.close();
   }

2.單參數(shù)array數(shù)組的類型:

 <select id="dynamicForeach2Test" resultType="Blog">
   select * from t_blog where id in
   <foreach collection="array" index="index" item="item" open="(" separator="," close=")">
     #{item}
   </foreach>
 </select>  

上述collection為array,對(duì)應(yīng)的Mapper代碼:

public List dynamicForeach2Test(int[] ids);

對(duì)應(yīng)的測(cè)試代碼:

@Test
 public void dynamicForeach2Test() {
     SqlSession session = Util.getSqlSessionFactory().openSession();
     BlogMapper blogMapper = session.getMapper(BlogMapper.class);
     int[] ids = new int[] {1,3,6,9};
     List blogs = blogMapper.dynamicForeach2Test(ids);
     for (Blog blog : blogs)
     System.out.println(blog);  
     session.close();
 }

3.自己把參數(shù)封裝成Map的類型

 <select id="dynamicForeach3Test" resultType="Blog">
     select * from t_blog where title like "%"#{title}"%" and id in
     <foreach collection="ids" index="index" item="item" open="(" separator="," close=")">
        #{item}
     </foreach>
 </select> 

上述collection的值為ids,是傳入的參數(shù)Map的key,對(duì)應(yīng)的Mapper代碼:

public List dynamicForeach3Test(Map params);

對(duì)應(yīng)測(cè)試代碼:

@Test
  public void dynamicForeach3Test() {
    SqlSession session = Util.getSqlSessionFactory().openSession();
     BlogMapper blogMapper = session.getMapper(BlogMapper.class);
     final List ids = new ArrayList();
     ids.add(1);
     ids.add(2);
     ids.add(3);
     ids.add(6);
     ids.add(7);
     ids.add(9);
    Map params = new HashMap();
     params.put("ids", ids);
     params.put("title", "中國(guó)");
    List blogs = blogMapper.dynamicForeach3Test(params);
     for (Blog blog : blogs)
       System.out.println(blog);
     session.close();
   }

總結(jié)

以上所述是小編給大家介紹的mybatis 中 foreach collection的用法小結(jié)(三種),希望對(duì)大家有所幫助!

相關(guān)文章

  • 如何將maven項(xiàng)目導(dǎo)出jar包(最簡(jiǎn)單方法)

    如何將maven項(xiàng)目導(dǎo)出jar包(最簡(jiǎn)單方法)

    大家都知道對(duì)于將maven項(xiàng)目導(dǎo)出jar包有好幾種方式,本文給大家分享一種方式最容易且最方便,感興趣的朋友跟隨小編一起看看吧
    2023-11-11
  • spring 定時(shí)任務(wù)@Scheduled詳解

    spring 定時(shí)任務(wù)@Scheduled詳解

    這篇文章主要介紹了spring 定時(shí)任務(wù)@Scheduled的相關(guān)資料,文中通過(guò)示例代碼介紹的很詳細(xì),相信對(duì)大家的理解和學(xué)習(xí)具有一定的參考借鑒價(jià)值,有需要的朋友們下面來(lái)一起看看吧。
    2017-01-01
  • IDEA 工程里 new不出來(lái)Vue文件的圖文解決方案

    IDEA 工程里 new不出來(lái)Vue文件的圖文解決方案

    這篇文章主要介紹了IDEA 工程里 new不出來(lái)Vue文件的解決方案,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03
  • 詳解spring cloud分布式整合zipkin的鏈路跟蹤

    詳解spring cloud分布式整合zipkin的鏈路跟蹤

    這篇文章主要介紹了詳解spring cloud分布式整合zipkin的鏈路跟蹤,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-07-07
  • 配置java.library.path加載庫(kù)文件問(wèn)題

    配置java.library.path加載庫(kù)文件問(wèn)題

    這篇文章主要介紹了配置java.library.path加載庫(kù)文件問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • Java中map和flatMap的區(qū)別舉例詳解

    Java中map和flatMap的區(qū)別舉例詳解

    這篇文章主要給大家介紹了關(guān)于Java中map和flatMap區(qū)別的相關(guān)資料,在Java中Stream接口有map()和flatmap()方法,兩者都有中間流操作,并返回另一個(gè)流作為方法輸出,需要的朋友可以參考下
    2023-10-10
  • SpringBoot-Mail工具實(shí)現(xiàn)郵箱驗(yàn)證碼登錄注冊(cè)功能

    SpringBoot-Mail工具實(shí)現(xiàn)郵箱驗(yàn)證碼登錄注冊(cè)功能

    現(xiàn)在許多pc程序都有著使用郵箱驗(yàn)證碼實(shí)現(xiàn)登錄注冊(cè)的功能,那么我們應(yīng)該如何完成郵箱驗(yàn)證碼功能呢,我們可以使用springboot內(nèi)置的springboot-mail再結(jié)合redis來(lái)完成這個(gè)功能,感興趣的朋友跟隨小編一起看看吧
    2024-07-07
  • 如何對(duì)Mysql數(shù)據(jù)表查詢出來(lái)的結(jié)果進(jìn)行排序

    如何對(duì)Mysql數(shù)據(jù)表查詢出來(lái)的結(jié)果進(jìn)行排序

    這篇文章主要介紹了如何對(duì)Mysql數(shù)據(jù)表查詢出來(lái)的結(jié)果進(jìn)行排序問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • Java中的CopyOnWriteArrayList原理詳解

    Java中的CopyOnWriteArrayList原理詳解

    這篇文章主要介紹了Java中的CopyOnWriteArrayList原理詳解,如源碼所示,CopyOnWriteArrayList和ArrayList一樣,都在內(nèi)部維護(hù)了一個(gè)數(shù)組,操作CopyOnWriteArrayList其實(shí)就是在操作內(nèi)部的數(shù)組,需要的朋友可以參考下
    2023-12-12
  • SpringBoot項(xiàng)目啟動(dòng)后自動(dòng)加載系統(tǒng)配置的多種實(shí)現(xiàn)方式

    SpringBoot項(xiàng)目啟動(dòng)后自動(dòng)加載系統(tǒng)配置的多種實(shí)現(xiàn)方式

    這篇文章主要介紹了SpringBoot項(xiàng)目啟動(dòng)后自動(dòng)加載系統(tǒng)配置的多種實(shí)現(xiàn)方式,并通過(guò)代碼示例講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2025-01-01

最新評(píng)論

衢州市| 耿马| 定兴县| 白银市| 镇坪县| 怀安县| 尚义县| 清水县| 响水县| 澎湖县| 洪江市| 勃利县| 琼结县| 福清市| 凤冈县| 西丰县| 塔城市| 宿迁市| 易门县| 山西省| 盐津县| 江门市| 黎平县| 阳东县| 乌什县| 鄄城县| 承德市| 雷山县| 云霄县| 高平市| 内江市| 长沙县| 东方市| 封丘县| 明溪县| 宿州市| 图们市| 阿巴嘎旗| 永顺县| 百色市| 喜德县|