mybatis+oracle 批量操作

在mybatis中,对于oracle的批量操作有点特殊,用到了就记一下。

批量插入

  • 批量插入(带序列)

      INSERT TABLE(
      ID,
      FIELD1,
      FIELD2
      )
      SELECT ID.NEXTVAL,X.* FROM(
      
        SELECT
        #{item.field1},
        #{item.field2}
        FROM DUAL
      
      ) X

  • 批量插入(不带序列)

    INSERT ALL
    
      INTO TABLE
      (ID,FIELD1,FIELD2)
      values(#{item.id},#{item.field1},#{item.field2})
    
    SELECT 1 FROM DUAL

注:必须加 useGeneratedKeys="false" ,不信可以试试。。。
大概什么原因偶也不清楚,就是批量插入的时候不能返回主键吧。

批量更新

  
    
      UPDATE TABLE
      
        
          ADDING_OPENNESS = #{item.field1},
        
        
          NORMALLY_OPEN = #{item.field2},
        
      
      where ID= #{item.id}
    
  

批量删除


DELETE FROM TABLE where ID in

#{item}


批量查询


你可能感兴趣的:(mybatis+oracle 批量操作)