今天用到了批量向oracle数据表中插入数据记录的mybatis配置sql的写法:
<insert id="insertOrderGoods" parameterType="java.util.List">
<foreach collection="list" item="item" index="index" separator="union" >
select #{item.id}, #{item.order_id}, #{item.product_id} , #{item.product_name} from dual
</foreach>
</insert>
需要注意的地方:
1)参数的类型 parameterType是java.util.List
实际上,list是以Map<String,Object>为元素的,每个Map是一条记录
即ArrayList<Map<String,Object>>
2)注意foreach的写法,是没有属性 open="(" 和 close=")"的,我试加上这两个参数后是报错的,但也能执行插入成功!所以,最好是不要这两个参数。
3)select ******from dual这里的dual是oracle特有的伪表,就这样写就行了。