MyBatis中批量插入、刪除寫法(MySql、Oracle)

利用MyBatis動態(tài)SQL的特性,我們可以做一些批量的操作,本文將介紹MySQL、Oracle SQL方言的批量插入、刪除寫法,更多詳細(xì)情況請查看MyBatis官方文檔

  • 批量插入

mysql:

<insert id="batchInsert" parameterType="java.util.List">
       insert into user(username, password) values
       <foreach collection="list" item="item" index="index"
           separator=",">
           (#{item.username},
           #{item.password} )
       </foreach>
</insert>

oracle:

 <insert id="batchInsert" parameterType="java.util.List">
    insert into user(username, password) 
    <foreach close=")" collection="list" item="item" index="index" open="(" separator="union">
        select
        #{item.username,jdbcType=VARCHAR},
        #{item.password,jdbcType=VARCHAR}
        from dual
    </foreach>
</insert>

oracle使用 sequence主鍵策略

<insert id="batchInsert" parameterType="java.util.List">
    insert into user(id, username, password)
       select SEQ_USER_ID.NEXTVAL,T.* from(
       <foreach collection="list" item="item" index="index"
           separator="UNION">
           SELECT
              #{item.username,jdbcType=VARCHAR},
              #{item.password,jdbcType=VARCHAR}
           from dual 
            </foreach>
       ) T
</insert>
  • 批量刪除
<delete id="batchDeleteByIdList" parameterType="java.util.List">
    delete from user
    where id in
    <foreach item="id" collection="list" open="(" separator="," close=")">
    #{id}
    </foreach>
</delete>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容