Mybatis <foreach>標籤中使用唯一索引插入更新

公司使用Mybatis的註解形式,之前一直用XML形式,這讓我十分不適應,簡單的CURD單語句還行,遇上覆雜連表查詢或者動態Sql,要麼使用<script>標籤要麼使用@SelectProvider註解,那一大堆Sql混雜着標籤或Java代碼,着實讓人噁心,同時極容易出錯,個人不太喜歡這種使用方式。
無奈,項目組統一使用註解方式,我也就不好說什麼了,畢竟做一些簡單查詢還是比較方便的(和項目組大佬討論過JPA實現,最終也不了了之)
在使用Mybatis註解方式的過程中遇到過很多和XML實現不同的問題(畢竟實現方式也不一樣),這篇就記錄下Mybatis註解方式實現唯一索引批量插入更新,使用唯一索引插入時會判斷該索引是否存在,是則更新該條記錄否則插入該條數據,避免了先查詢後判斷再選擇插入或更新的繁瑣過程
XML實現:

<insert id="saveBatchAppendCrmTaobaoTraderates" parameterType="list">
      insert into test(series,name,num)  
      <foreach collection="list" item="item" open="values" separator=",">
      (#{item.series},#{item.name},#{item.num})
      </foreach>
      on duplicate key update 
      name=VALUES(name),num=VALUES(num)
</insert>

未完待續。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章