首先是mysql中批量新增
service层
/**
* 批量插入
*
* @param
* @return
* @author xty
* @date 2019/3/6 15:13
*/
int insertByBatch(@Param("list") List<QcDistrictLog> qcDistrictLogs);
mapper.java层
@Override
public int insertByBatch(@Param("list") List<QcDistrictLog> qcDistrictLogs) {
return mapper.insertByBatch(qcDistrictLogs);
}
/** 批量新增
*
* @param
* @return
* @author xty
* @date 2019/3/6 15:20
*/
int insertByBatch(@Param("list") List<QcDistrictLog> qcDistrictLogs);
xml层
<insert id="insertByBatch"
parameterType="java.util.List">
insert into log (
active)
values
<foreach collection="list" item="item" index="index" separator=",">
( #{item.active,jdbcType=TINYINT})
</foreach>
</insert>
Oracle中批量新增
xml中
<insert id="insertByBatch"
parameterType="java.util.List">
insert into LOG
(ACTIVE)
<foreach collection="list" item="item" index="index" separator="UNION">
SELECT
#{item.active,jdbcType=DECIMAL}
FROM DUAL
</foreach>
</insert>
在oracle中全部为大写 数据类型需要注意转换。
其中select from DUAL 就是一张临时表 个人理解就是保证语法完整性,重点还是关注前面部分