使用Mybatis的xml配置批量插入操作(批量插入只执行一条sql语句)

版权声明:张宜成个人博客 转载请标明出处 https://blog.csdn.net/qq_40820862/article/details/84476615

现在有两个表,分别是 订单条目表:orderitem商品表:introduction;

现在我有需求是将查询出 某些商品表 中的 商品的某些属性 插入到 订单条目表 中的 某些属性中.

1 现在xml文件中写好两个表需要对应的字段.

<!-- 3.将查询出的商品集合插入到订单条目中去 -->
    <insert id="insertOrderItem" parameterType="java.util.List">
        insert into orderitem (orders_id, orderitem_quantity, orderitem_introductionid, orderitem_subtotal, orderitem_product_name, orderitem_price, orderitem_image, orderitem_property1, orderitem_property2) values
             <foreach collection="list" item="item" index="index" separator=",">
                 (
                 #{orders_id},
                 #{item.goods_number.goods_number},
                 #{item.introduction_id},
                 #{item.introduction_currprice}*#{item.goods_number.goods_number},
                 #{item.introduction_name},
                 #{item.introduction_currprice},
                 #{item.introduction_imagec},
                 #{item.introduction_property1},
                 #{item.introduction_property2}
                 )
             </foreach>
    </insert>

2.DAO层:

// 3.将查询出的商品集合插入到订单条目中去
    public void insertOrderItem(@Param("list") List<Introduction> list,
                               @Param("orders_id") Integer orders_id);

3. Service层:

/**
     *  3.将查询出的商品集合插入到订单条目中去
     */
    public void insertOrderItem(List<Introduction> list, Integer orders_id) {

        payDao.insertOrderItem(list,orders_id);
    }

4. 最后再Controller层中将需要传入的数据传入:

5 完成批量插入.

展开阅读全文

没有更多推荐了,返回首页