1. 程式人生 > 實用技巧 >Mybatis批量插入資料

Mybatis批量插入資料

批量插入資料兩種方式

1. 查詢後插入

    <insert id="saveInfo" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="id">
        insert into v_product_info
        (
            `demand_number`,
            `product_name`,
            `product_type`,
            `sap_item_number`,
            `sgc_number`,
            `need_count`,
            `create_time`,
            `update_time`
        )
        
<foreach collection="list" item="item" index="index" separator="union"> select #{item.demandNumber}, #{item.productname}, #{item.productcode}, #{item.materialid}, #{item.sgccode}, #{item.number}, now(), now()
from dual </foreach> </insert>

2. 使用拼接的資料

    <insert id="saveBatch" parameterType="java.util.List">
        <selectKey resultType ="java.lang.Integer" keyProperty= "id" order= "AFTER">
            SELECT LAST_INSERT_ID()
        </selectKey>
        insert into p_product_info_rec
        (
            `proid`, 
            `assetid`, 
            `sap_no`, 
            `porduct_model`, 
            `number`, 
            `print_no_num`, 
            `device_name`, 
            `device_type`, 
            `card_type`, 
            `card_no_type`, 
            `print_info`, 
            `mark_info`, 
            `write_info`, 
            `remark`, 
            `subpackage_no`,
            `number_code`
        )
        values
        
<foreach collection ="list" item="rec" index= "index" separator =","> ( #{rec.proid}, #{rec.assetid}, #{rec.sapNo}, #{rec.porductModel}, #{rec.number}, #{rec.printNoNum}, #{rec.deviceName}, #{rec.deviceType}, #{rec.cardType}, #{rec.cardNoType}, #{rec.printInfo}, #{rec.markInfo}, #{rec.writeInfo}, #{rec.remark}, #{rec.subpackageNo}, #{rec.numberCode} ) </foreach > </insert>