mybatis中foreach

來源:互聯網
上載者:User

foreach

另外一個動態 SQL 通用的必要操作是迭代一個集合,通常是構建在 IN 條件中的。比如:

<select id="selectPostIn" resultType="domain.blog.Post">

SELECT *

FROM POST P

WHERE ID in

<foreach item="item" index="index" collection="list"

open="(" separator="," close=")">

#{item}

</foreach>

</select>

foreach 元素是非常強大的,它允許你指定一個集合,聲明集合項目和索引變數,它們可

以用在元素體內。它也允許你指定開放和關閉的字串,在迭代之間放置分隔字元。這個元素

是很智能的,它不會偶然地附加多餘的分隔字元。

注意:你可以傳遞一個 List 執行個體或者數組作為參數對象傳給 MyBatis。當你這麼做的時

候,MyBatis 會自動將它封裝在一個 Map 中,用名稱作為鍵。List 執行個體將會以“list”

作為鍵,而數組執行個體將會以“array”作為鍵。


demo1

傳遞生產的id為

List<Integer> ids=Arrays.asList(StringUtil.parseInteger(id.split(","), 0));

其中id為34 35

service.delete(ids);


<update id="delete" parameterType="java.util.List">    update a set is_delete = 1 where id in    <foreach collection="list" item="id" index="index" open="(" separator="," close=")">         #{id,jdbcType=INTEGER}    </foreach>  </update>


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.