1、动态导入数据,即表和属性是不固定的
/**
* 批量新增数据
*
* @param tableName 表名
* @param columnList 表列
* @param dataList 表数据
* @return 结果
*/
int batchInsertData(@Param("tableName") String tableName, @Param("columnList") List<String> columnList, @Param("dataList") List<Map<String, Object>> dataList);
xml
<insert id="batchInsertData">
insert into ${tableName}
<trim prefix="(" suffix=")" suffixOverrides=",">
<foreach collection="columnList" item="item" separator=",">
`${item}`
</foreach>
</trim>
<trim prefix="values " suffixOverrides=",">
<foreach collection="dataList" item="data" separator=",">
<foreach collection="columnList" item="col" open="(" separator="," close=")">
#{data.[${col}]}
</foreach>
</foreach>
</trim>
</insert>
#{data.[${col}]} 使用这种方式从嵌套的foreach中按column中顺序取出对应的字段,如果data后面不加.则会保存,未找到data变量