Oracle + Mybatis批量插入数据,xml.mapper种的写法

1,把表中去年所有的信息全部复制作为今年的数据,即查询出去年所有的数据然后复制插入

<insert id="cover" parameterType="java.lang.String">
insert into tableA (ID, YEAR, 字段2, 字段3, ...)
select sys_guid(),#{currentYear},字段2, 字段3, ...from tableA where year= #{pastYear}
</insert>

ID是唯一标识,生成guid,然后将年份赋值为currentYear,其它的字段全部取去年的数据。

2,参数为list,即插入几条数据。
<insert id="copyPastYear" parameterType="java.util.List">
insert into t_fseinumpool
(
EINUMPOOLID,ADMDIVID,BillTypeID,YEAR,STARTEINUM,ENDEINUM,CurrentlyNum
)
select t.* from
(
<foreach collection="list" item="item" index="index" separator="UNION ALL">
select
sys_guid(),
#{item.ADMDIVID},
#{item.BillTypeID},
#{item.YEAR},
#{item.STARTEINUM},
#{item.ENDEINUM},
#{item.CurrentlyNum}
from dual
</foreach>
) t
</insert>
这种方法使用了mybatis种的foreach方法,传入参数list中的每条数据的属性要与数据列一一对应(每个属性是根据实体类的set方法赋值)。
 
posted on 2018-09-21 16:38  MrQuan  阅读(808)  评论(0编辑  收藏  举报