MyBatis的批量操作

一、MyBatis中通过xml文件配置数据库批量操作

<!-- 批量 ,传入一个长度为1000的list -->
<insert id="insertBatch" >
insert into student ( <include refid="Base_Column_List" /> values
<foreach collection="list" item="item" index="index"
separator=",">
(null,#{item.name},#{item.sex},#{item.address},
#{item.telephone},#{item.tId})
</foreach>
</insert>



二、通过注解配置实现

public class UserDAOProvider {
public String insertAll(Map map) {
List<User> users = (List<User>) map.get("list");
StringBuilder sb = new StringBuilder();
sb.append("INSERT INTO User ");
sb.append("(id, name) ");
sb.append("VALUES ");
MessageFormat mf = new MessageFormat("(null, #'{'list
[{0}].name})");
for (int i = 0; i < users.size(); i++) {
sb.append(mf.format(new Object[]{i}));
if (i < users.size() - 1) {
sb.append(",");
}
}
return sb.toString();
}
}

MyBatis会把List类型的参数存入一个Map中, 默认的key是"list", 可以用@Param注解自定义名称, MyBatis在调用@InsertProvide指定的方法时将此map作为参数传入;也可
自己传人参数处理。

生成的SQL语句大致为:
INSERT INTO User (id, name) VALUES (null, #{list[0].name}), (null, #{list[1].name})[,(null, #{list[i].name})]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值