mybatis批量操作
常用的做法如下代码所示:
// UserDao.java
/**
* 批量插入
*/
int batchInsert(@Param("users") List<User> users);
// UserDao.xml
<insert id="batchInsert">
INSERT INTO user (name,password) VALUES
<foreach collection="users" item="user" index="index" separator=",">
(#{user.name},#{user.password})
</foreach>
</insert>
但是,这样有个影藏的bug:当user集合超过一定数量,会导致动态拼接的sql过长而导致执行报错。并且,批量更新就不能使用这种形式了。
使用mybatis批量提交方式
// Mapper.xml
<insert id="insertName">
insert into names (name) values (#{value})
</insert>
// java code
List<String> names = new ArrayList<String>();
names.add("Fred");
names.add(