Mybatis 批量插入時得到插入的id(mysql)


前言:
在開發中,我們可能很多的時候可能需要在新增時得到剛才新增的id,后續的邏輯需要用到這個id。
在插入單條記錄的情況下,這個是很簡單的問題。多條記錄時有個坑在里面。
單條記錄的代碼如下

<insert id="add" useGeneratedKeys="true"  keyProperty="id">
    insert into person 
	  (
	    name,
	    age
	  ) values
	  (
	    #{name},
	    #{age}
	   )
</insert>

這樣插入完后,在person類中id就可以得到剛才最新插入的值了。

多條記錄的代碼如下

<insert id="adds" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="id">
        insert into person
		(
		  name,
	      age
		) values
		<foreach collection="list" item="item" separator=",">
		(
		#{item.name},
	    #{item.age}
		)
		</foreach> 
</insert>

首先這樣的寫法是對的,好多的地方也是這樣寫的。
我當初也是這樣寫的,但一直不行,最后找了好長時間的資料才發現,是mybatis的版本的問題。
最開始的時候用的是3.2.8的版本,但是這個需要至少升級到3.3.1版本才能支持。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM