今天有个批量的东西很是耽误我的时间,那就是ibatis对Oracle的批量操作,虽然觉得这种批量的没什么,以前也有做过,但是对于mysql和oracle是不一样的,那么接下来我们就来介绍一下,oracle的批量操作,至于MySQL百度上面有的是。
1.批量插入:
<insert id="savePpmxNEW" parameterClass="java.util.List">
<![CDATA[
INSERT ALL
]]>
<iterate conjunction=" ">
into FPMX(ID,FPLXDM,FPDM,FPHM)
values(#csList[].ID#,#csList[].FPLXDM#,#csList[].FPDM#,#list[].FPHM)
</iterate>
<![CDATA[
select * from dual
]]>
</insert>
这种写法是Oracle的版本。主要是对应了Oracle批量插入数据库的操作,其中<iterate>为循环迭代,对传来的List数据进行迭代,有人说csList与Dao传来的LIst数据名称一致,但我发现,任意写好像也可以,不过大家也可以注意下这一点,避免出错。
2.批量更新:
<update id="updatePpmx" parameterClass="java.util.List">
begin
<iterate conjunction=";">
update PJ_ZZSP_FPMX set
FPLXDM=#list[].FPLXDM#,
FPDM=#list[].FPDM#,
FPHM=#list[].FPHM#
where ID=#list[].ID#
</iterate>
;end;
</update>
这种同样也是Oracle版本,这种写法也就不多解释了,update语句之间用“;”隔开,首尾加上begin和end。