User实体类:
@Data
public class User {
private String id;
private String userName;
private String sex;
private String age;
}
UserMapper.java
@Mapper
public interface UserMapper {
boolean insertUpdate(List<User> user);
}
UserMapper.xml
<update id="insertUpdate" parameterType="com.haohao.model.User">
merge into user a using(
<foreach collection="list" index="index" item="item"
separator="union all">
select
#{item.id} as id,
#{item.userName} as userName,
#{item.sex} as sex,
#{item.age} as age
from dual
</foreach>
) b
on (a.id=b.id)
when matched then
update set
a.userName=b.userName,
a.sex=b.sex,
a.age=b.age
where a.id=b.id
when not matched then
insert
(a.id,
a.userName,
a.sex,
a.age)
</update>
具体实现:
List<User> userList = new ArrayList<>();
List<User> list = new ArrayList<>();
for (User item : userList) {
User user = new User();
user.setId("123456789");
user.setUserName("haohao");
user.setSex("1");
user.setAge("20");
list.add(user);
}
boolean flag = UserMapper.insertUpdate(list);