Mybatis批量插入或更新

Mapper方法定义:

  /**
     * 批量保存或更新数据
     * @param list
     */

    void saveBatch(List<Employee> list);

Employee.xml实现:

<insert id="saveBatch"  parameterType="java.util.List" >

MERGE INTO employee A1

        USING
        (
           <foreach close="" collection="list" index="index" item="item" open="" separator="union">
             select  #{item.id} id,#{item.name} name,#{item.deptId} deptId,#{item.deptName} deptName from dual
           </foreach>
        ) A2
        ON
        (
           A1.id = A2.id
        )
        WHEN MATCHED THEN
        UPDATE SET A1.status = 1
        WHEN NOT MATCHED THEN
        INSERT
        (id,name,detp_id,dept_name)

        VALUES( A2.id,A2.name,A2.deptId,A2.deptName)

 </insert>

猜你喜欢

转载自blog.csdn.net/weixin_40333020/article/details/80637412