mybatis循环List<Map<Stirng,Object>>中每个数据

本文介绍如何使用MyBatis通过两次循环处理未知key值的listMap数据,实现从Excel批量导入数据到数据库表的过程。

在做导入excel数据到数据库表中,对于前段传过来的数据需要循环插入,而前端传过来的listMap数据有哪些key值是不知道的,所以只好在mybatis里面两次循环来处理:
sql层

<insert id="importData">
		INSERT INTO ${tableName}
		<foreach collection="columns" open="("	item="column" close=")" separator=",">
			${column}
		</foreach>
		VALUES
		<foreach collection="listData" item="datas" separator=",">
			<foreach collection="datas" item="data" open="(" close=")" separator=",">
				#{data}
			</foreach>
		</foreach>
	</insert>

dao层

/**
	 * @Description: 导入Excel数据
	 * @author: luyy
	 * @date 2021年2月19日 下午1:55:45
	 * @param tableName 表名
	 * @param columns   所有列
	 * @param listData  所有列值
	 * @return int
	 */ 
	int importData(@Param("tableName") String tableName, @Param("columns") List<String> columns, @Param("listData") List<Map<String,Object>> listData);

先将listData循环

<foreach collection="listData" item="datas" separator=",">
		</foreach>

item里面就是每个map
再循环map,就能取出每一个值了

<foreach collection="datas" item="data" open="(" close=")" separator=",">
				#{data}
			</foreach>

这里的collection就是以上层循环的item作为集合来循环的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值