java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > mybatis一对多批量插入

mybatis一对多方式实现批量插入

作者:何锦康

这篇文章主要介绍了mybatis一对多方式实现批量插入,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

mybatis一对多方式批量插入

需求

public class Order {
    private String orderId;
    private List<OrderGoods> orderGoods;
}

public class OrderGoods {
    private String goodsId;
    private String goodsName;
    private float goodsPrice;
    private int quantity;
}

如实体类所示

一个订单编号对应多条商品信息,向数据库新增订单的时候,需要记录每个订单有哪些商品,就有一个订单-商品信息关系表,那么当生成订单的额时候,也需要记录订单-商品信息关系表,

如图所示


在这里插入图片描述

这里的订单id是重复的,每个订单里面的商品信息是一个集合,那么订单-商品信息关系表怎么实现批量插入呢?

实现

<insert id="createOrderGoods" parameterType="Order">
        insert into order_goods values
        <foreach collection='orderGoods'
                 item = 'goods'
                 separator=","
        >
            (#{orderId},#{goods.goodsId},#{goods.goodsName},#{goods.goodsPrice},#{goods.quantity})
        </foreach>
    </insert>

这里将需要循环的集合设置为Order类里面的商品集合属性名也就是orderGoods,在循环的时候第一个订单编号从parameterType传进来的Order里面获取,后面的商品信息从每一个item中获取,即可以完成一对多批量更新

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文