首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

MyBatis 參數傳遞技巧:List 集合作為 IN 條件的 foreach 寫法

     編輯:Java 綜合教學

MyBatis 參數傳遞技巧:List 集合作為 IN 條件的 foreach 寫法

MyBatis 中將 List 集合作為 SQL IN 條件參數傳遞,需配合 <foreach> 標簽,關鍵在於 collection 屬性值的正確指定。

Mapper 接口

void updateContactsIsRead(List<Integer> logidList);

Mapper XML

<update id="updateContactsIsRead">
    UPDATE emaillog2 
    SET isRead = 1 
    WHERE isRead = 0 
    AND logid IN 
    <foreach collection="list" item="logid" index="index" open="(" close=")" separator=",">
        #{logid, jdbcType=INTEGER}
    </foreach>
</update>

關鍵點解析

屬性值說明
collection"list"單參數 List 時固定為 "list";@Param("ids") 時用 "ids"
item"logid"迭代變量名,用於 #{logid} 引用
open/close"("/")"IN 子句括號
separator","元素分隔符

多參數場景擴展

// 接口
void update(@Param("ids") List<Integer> ids, @Param("status") int status);

// XML
<foreach collection="ids" item="id" ...> #{id} </foreach>

使用 @Param 顯式命名時,collection 對應參數名。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved