由于oracle的语法问题,导致在使用mybatis进行批量插入时,会出现许多的问题,我费了好大的力气才弄好。大概总结了一下,有这么几个需要注意的地方:
1,需要写出列名,不能直接用values插入所有的值。
2,在foreach的separator应该使用“union all”,而不是想mysql那样直接用 “ , ”。foreach中应该使用 select ... from dual的格式
3, parametertype 应该设置为“java.util.List”。
4,自动增长列的问题。由于我使用了自动增长列作为主键,如果在foreach中在嵌套(select ..nextval from dual)就会报错。而且oracle是不允许直接设置列自动增长的,可以使用触发器来解决,但是触发器是不推荐使用的,这个就需要另外解决了。
5,插入的参数列表需要写出其jdbcType。