日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

【mybatis mapper XML】List类型入参参数处理

發布時間:2024/9/19 asp.net 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【mybatis mapper XML】List类型入参参数处理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

  • mybatis 3.4.6
  • 如果 DAO 中這樣傳參,XML該如何處理呢?
List<Article> selectLatestArticleList(@Param("channelIdList")List<Long> channelIdList, @Param("maxDay")int maxDay);

XML

<select id="selectLatestArticleList" parameterType="map" resultMap="ArticleResult">select * from article where pubTime >= DATE_FORMAT( NOW() - INTERVAL #{maxDay} DAY, '%Y-%m-%d' ) and channel in <foreach item="item" collection="channelIdList" open="(" separator="," close=")">#{item}</foreach></select>

說明:

  • collection="channelIdList"中的channelIdList是DAO入參的參數名
  • item="item"中的item是本次迭代獲取到的元素的別名。

上面的xml會變成下面的sql:

select * from article where pubTime >= DATE_FORMAT( NOW() - INTERVAL 1 DAY, '%Y-%m-%d' ) and channel in (1,2,3)

foreach 介紹

  • foreach用于處理動態 SQL 的一個常見使用場景:對集合進行遍歷(尤其是在構建 IN 條件語句的時候)。
  • 這里的集合指:可迭代對象(如 List、Set 等)、Map 對象或者數組對象。
  • 當使用可迭代對象或者數組時,index 是當前迭代的序號,item 的值是本次迭代獲取到的元素。
  • 當使用 Map 對象(或者 Map.Entry 對象的集合)時,index 是鍵,item 是值。

collection 屬性取值的幾種情況

當使用可迭代對象或者數組時,有3種情況:

  • 如果傳入的是單參數且參數類型是一個List的時候,默認使用list作為參數名
  • 如果傳入的是單參數且參數類型是一個array數組的時候,默認使用array作為參數名
  • 如果傳入的參數是多個的時候,需要設置參數名。當然單參數時也可以設定參數名。使用@Param(“keyName”)來設置參數名。
  • 例子

    例子1:

    <select id="selectPostIn" resultType="domain.blog.Post">SELECT *FROM POST PWHERE ID in<foreach item="item" index="index" collection="list"open="(" separator="," close=")">#{item}</foreach> </select>

    例子2:

    <insert id="insertAuthor" useGeneratedKeys="true"keyProperty="id">insert into Author (username, password, email, bio) values<foreach item="item" collection="list" separator=",">(#{item.username}, #{item.password}, #{item.email}, #{item.bio})</foreach> </insert>

    參考

    https://mybatis.org/mybatis-3/zh/dynamic-sql.html
    https://www.cnblogs.com/fnlingnzb-learner/p/10566452.html

    總結

    以上是生活随笔為你收集整理的【mybatis mapper XML】List类型入参参数处理的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。