批量向oracle表中插入记录的mybatis的sql写法

341 阅读1分钟

今天用到了批量向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的存在