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)文章
Spring實(shí)戰(zhàn)之使用TransactionProxyFactoryBean實(shí)現(xiàn)聲明式事務(wù)操作示例
這篇文章主要介紹了Spring實(shí)戰(zhàn)之使用TransactionProxyFactoryBean實(shí)現(xiàn)聲明式事務(wù)操作,結(jié)合實(shí)例形式分析了spring使用TransactionProxyFactoryBean實(shí)現(xiàn)聲明式事務(wù)相關(guān)配置、接口設(shè)置與使用技巧,需要的朋友可以參考下2020-01-01
java實(shí)現(xiàn)的漢字轉(zhuǎn)五筆功能實(shí)例
這篇文章主要介紹了java實(shí)現(xiàn)的漢字轉(zhuǎn)五筆功能,結(jié)合具體實(shí)例形式分析了java基于字符串遍歷與編碼轉(zhuǎn)換等操作實(shí)現(xiàn)五筆編碼獲取的相關(guān)操作技巧,需要的朋友可以參考下2017-06-06
詳解Spring AOP 實(shí)現(xiàn)“切面式”valid校驗(yàn)
本篇文章主要介紹了詳解Spring AOP 實(shí)現(xiàn)“切面式”valid校驗(yàn),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-01-01
Java基礎(chǔ)之JDBC的數(shù)據(jù)庫(kù)連接與基本操作
這篇文章主要介紹了Java基礎(chǔ)之JDBC的數(shù)據(jù)庫(kù)連接與基本操作,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java基礎(chǔ)的小伙伴們也有很好的幫助,需要的朋友可以參考下2021-05-05

