MyBatis批量插入

mysql 的批量插入語句:java

INSERT INTO TABLE_NAME(FILED) VALUES (NAME_VALUE1), (NAME_VALUE2), (NAME_VALUE3)

MyBatis批量插入:mysql

<insert id="addTrainRecordBatch" useGeneratedKeys="true" parameterType="java.util.List">
	<selectKey resultType="long" keyProperty="id" order="AFTER">
		SELECT
		LAST_INSERT_ID()
	</selectKey>
	insert into t_train_record (add_time,emp_id,activity_id,flag) 
	values
	<foreach collection="list" item="item" index="index" separator="," >
		(#{item.addTime},#{item.empId},#{item.activityId},#{item.flag})
	</foreach>
</insert>

foreach元素的屬性主要有 item,index,collection,open,separator,close。item表示集合中每個元素進行迭代時的別名,index指 定一個名字,用於表示在迭代過程當中,每次迭代到的位置,open表示該語句以什麼開始,separator表示在每次進行迭代之間以什麼符號做爲分隔 符,close表示以什麼結束sql

1.若是傳入的是單參數且參數類型是一個List的時候,collection屬性值爲list數組

2.若是傳入的是單參數且參數類型是一個array數組的時候,collection的屬性值爲arrayspa

3.若是傳入的參數是多個的時候,咱們就須要把它們封裝成一個Map了,固然單參數也能夠封裝成mapcode

相關文章
相關標籤/搜索