背景:往sql里面传数据时以list集合的形式,因为你要批量插入。
1.sql语句如下写
<insert id="insertAll" parameterType="java.util.List">
insert into 你的表名
(主键ID , 字段1名字 , 字段2名字 , 看你有几个字段)
select 你的表名的序列名称.nextval as 主键ID , //以表序列来自动获取id值
A.* from (
<foreach collection="list" item="item" index="index" separator="union all">
select //这里的select和后面的from dual是固定的
#{item.字段1名字} as CPC_CODE,
#{item.字段2名字} as EP_TABLET_NAME,
sysdate as CREATE_TIME,//获取当前时间,如果字段有时间类型
0 as status from dual //为状态赋值为0
</foreach>
)A //为这个子查询去别名A
</insert>
2.一般的插入语句是insert into 表名 (id , 字段 , 字段) values(#{} , #{} , #{}),当然这里一定要按照顺序给值
上面是忽略了values的写法, 从有代码的第四行select开始就是在取值了,取的是用序列得到的id值和遍历集合得到的对象的字段