mybatis一對(duì)多方式實(shí)現(xiàn)批量插入
mybatis一對(duì)多方式批量插入
需求
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; }
如實(shí)體類所示
一個(gè)訂單編號(hào)對(duì)應(yīng)多條商品信息,向數(shù)據(jù)庫(kù)新增訂單的時(shí)候,需要記錄每個(gè)訂單有哪些商品,就有一個(gè)訂單-商品信息關(guān)系表,那么當(dāng)生成訂單的額時(shí)候,也需要記錄訂單-商品信息關(guān)系表,
如圖所示
這里的訂單id是重復(fù)的,每個(gè)訂單里面的商品信息是一個(gè)集合,那么訂單-商品信息關(guān)系表怎么實(shí)現(xiàn)批量插入呢?
實(shí)現(xiàn)
<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>
這里將需要循環(huán)的集合設(shè)置為Order類里面的商品集合屬性名也就是orderGoods,在循環(huán)的時(shí)候第一個(gè)訂單編號(hào)從parameterType傳進(jìn)來(lái)的Order里面獲取,后面的商品信息從每一個(gè)item中獲取,即可以完成一對(duì)多批量更新
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Springboot開(kāi)發(fā)之利用Docker和Kubernetes部署微服務(wù)
這篇文章主要介紹了如何將Spring Boot開(kāi)發(fā)的微服務(wù)通過(guò)Docker容器化,并使用Kubernetes進(jìn)行部署和管理,幫助讀者掌握現(xiàn)代云原生應(yīng)用的完整開(kāi)發(fā)部署流程,有需要的可以了解下2025-03-03Java之Spring AOP 實(shí)現(xiàn)用戶權(quán)限驗(yàn)證
本篇文章主要介紹了Java之Spring AOP 實(shí)現(xiàn)用戶權(quán)限驗(yàn)證,用戶登錄、權(quán)限管理這些是必不可少的業(yè)務(wù)邏輯,具有一定的參考價(jià)值,有興趣的可以了解一下。2017-02-02探究springboot中的TomcatMetricsBinder
springboot的TomcatMetricsBinder主要是接收ApplicationStartedEvent然后創(chuàng)建TomcatMetrics執(zhí)行bindTo進(jìn)行注冊(cè),TomcatMetrics主要注冊(cè)了globalRequest、servlet、cache、threadPool、session相關(guān)的指標(biāo),本文給大家介紹的非常詳細(xì),需要的朋友參考下吧2023-11-11java中對(duì)象轉(zhuǎn)json字符串的幾種常用方式舉例
這篇文章主要給大家介紹了關(guān)于java中對(duì)象轉(zhuǎn)json字符串的幾種常用方式,在Java中可以使用許多庫(kù)將對(duì)象轉(zhuǎn)換為JSON字符串,其中最常用的是Jackson和Gson,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-10-10IntelliJ IDEA創(chuàng)建maven多模塊項(xiàng)目(圖文教程)
這篇文章主要介紹了IntelliJ IDEA創(chuàng)建maven多模塊項(xiàng)目(圖文教程),非常具有實(shí)用價(jià)值,需要的朋友可以參考下2017-09-09詳解SpringBoot實(shí)現(xiàn)事件同步與異步監(jiān)聽(tīng)
這篇文章主要通過(guò)示例為大家詳細(xì)介紹了SpringBoot中的事件的用法和原理以及如何實(shí)現(xiàn)事件同步與異步監(jiān)聽(tīng),快跟隨小編一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06