mybatis批量操作注意事項

    閒來記錄下mybatis的批量操作,寫法很簡單,mapper中的方法傳入一個list,然後xml裏循環就好;

注意點:

循環的list一次過千可能有問題,需要分批次執行,這裏以批量修改爲例,以前好像遇到過批量新增時候,id數量限制,好像是160(忘記具體原因了),總之批量操作注意數量問題。解決方法:看下面的例子

還有就是,批量操作的時候,獲取集合的某一個屬性,不需要單獨去建一個單個屬性的list,可以把對象list傳入後,直接用.(點)獲取相應屬性(例子中倒數第四行)

代碼如下:

<update id="對應的方法名">
		update 表
		set STATUS = #{status}
		where ORG_CODE = #{orgCode}
		and OUTPATIENT_CODE in
		<trim suffixOverrides=" OR OUTPATIENT_CODE IN ()">
		      <foreach item="tlybMzjs" index="index" collection="對應的list"
		               open="(" close=")">
		          <if test="index != 0">
		              <choose>
		                  <when test="index % 1000 == 999">) OR OUTPATIENT_CODE IN (</when>
		                  <otherwise>,</otherwise>
		              </choose>
		          </if>
		          #{tlybMzjs.outpatientCode}
		      </foreach>
		</trim>
</update>

 

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