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

相关文章
相关标签/搜索