使用foreach的方式处理mybatis的批插入。

mysql处理方式

<!-- 批量插入生成的兑换码 -->
     <insert id ="insertCodeBatch" parameterType="java.util.List" >
            <selectKey resultType ="java.lang.Integer" keyProperty= "id"
                 order= "AFTER">
                SELECT LAST_INSERT_ID()
            </selectKey >
           insert into redeem_code
           (bach_id, code, type, facevalue,create_user,create_time)
           values
            <foreach collection ="list" item="reddemCode" index= "index" separator =",">
                (
                #{reddemCode.batchId}, #{reddemCode.code},
                #{reddemCode.type},
                #{reddemCode.facevalue},
                #{reddemCode.createUser}, #{reddemCode.createTime}
                )
            </foreach >
     </insert >

oracle处理方式

INSERT ALL
   INTO sales (prod_id, cust_id, time_id, amount)
   VALUES (product_id, customer_id, weekly_start_date, sales_sun)
   INTO sales (prod_id, cust_id, time_id, amount)
   VALUES (product_id, customer_id, weekly_start_date+1, sales_mon)
   INTO sales (prod_id, cust_id, time_id, amount)
   VALUES (product_id, customer_id, weekly_start_date+2, sales_tue)
   INTO sales (prod_id, cust_id, time_id, amount)
   。。。
SELECT product_id, customer_id, weekly_start_date, sales_sun,
   sales_mon, sales_tue, sales_wed, sales_thu, sales_fri, sales_sat
   FROM sales_input_table;