今天用到了批量向oracle数据表中插入数据记录的mybatis配置sql的写法:
insert into member_order_goods ( id,order_id,product_id,product_name)
select #{item.id}, #{item.order_id}, #{item.product_id} , #{item.product_name} from dual
需要注意的地方:
1)参数的类型 parameterType是java.util.List
实际上,list是以Map<String,Object>为元素的,每个Map是一条记录
即ArrayList<Map<String,Object>>
2)注意foreach的写法,是没有属性 open="(" 和 close=")"的,我试加上这两个参数后是报错的,但也能执行插入成功!所以,最好是不要这两个参数。
3)select ******from dual这里的dual是oracle特有的伪表,就这样写就行了。
Tips:
最后切记Oracle的批量插入跟Mysql的批量是有区别,如果按照Mysql的批量插入会报错,报错是sql没有正确完成。
--by一个苟且偷生的java小生,只为减少bug的存在