最近公司开发中,涉及到批量更新数据库,而且是要根据条件 来更新,在最开始尝试for loop 循环无果后,转而采用foreach来进行更新,经过测试,方法可行,但其效率就不得而知,需要继续测试。
for loop循环如下:
begin
for aa in (#{list}) loop
update tuser
set name = aa.name
where id = aa.id
end loop;
end;
其中的list是本打算传入的列表,但无论如何尝试,总会报错,因周末需要上线改功能,多次尝试无果后,转而采用foreach方法。
新增
<insert id="insertElement" parameterType="java.util.List">
INSERT INTO TABLENAME(FIELD1, FIELD2, FIELD3)
select A* from
(
<foreach collection="list" item="item" separator="UNION ALL" >
SELECT
#{item.FIELD1},
#{item.FIELD2},
#{item.FIELD3}
FROM DUAL
</foreach>
) A
<insert>
修改