mybatis批量处理
// 入参类型为List<UserInfo>;不存在则新增T_USERINFO;已存在则不做处理
<insert id="noexistThenBatInsert" parameterType="java.util.List">
MERGE INTO t_userinfo t1
USING (
<foreach collection="list" item="item" index="index" separator="union" >
select
#{item.id,jdbcType=VARCHAR} ID,
#{item.username,jdbcType=VARCHAR} USERNAME,
#{item.displayName,jdbcType=VARCHAR} DISPLAYNAME,
#{item.email,jdbcType=VARCHAR} EMAIL,
#{item.gender,jdbcType=VARCHAR} GENDER,
#{item.mobile,jdbcType=VARCHAR} MOBILE,
#{item.description,jdbcType=VARCHAR} DESCRIPTION,
#{item.ifAppUser,jdbcType=VARCHAR} IFAPPUSER,
#{item.password,jdbcType=VARCHAR} PASSWORD,
1 STATUS,
'1' INSTID
from dual
</foreach>) t2
ON (
-- t1.ID = t2.ID and
t1.USERNAME = t2.USERNAME
)
-- WHEN MATCHED THEN
-- UPDATE SET t.CREATE_TIME = t1.CREATE_TIME
WHEN NOT MATCHED THEN
INSERT
(ID, USERNAME, DISPLAYNAME, EMAIL, GENDER, MOBILE, DESCRIPTION,IFAPPUSER, PASSWORD, STATUS, INSTID)
VALUES
(t2.ID, t2.USERNAME, t2.DISPLAYNAME, t2.EMAIL, t2.GENDER, t2.MOBILE, t2.DESCRIPTION, t2.IFAPPUSER, t2.PASSWORD, t2.STATUS, t2.INSTID)
</insert>
-----------------以下参考链接
merge into 的用法
https://blog.csdn.net/weixin_44657888/article/details/124591434