mybatis主表與明細(xì)表一對(duì)多的同時(shí)插入操作方法
對(duì)主表(采購(gòu)申請(qǐng)表)和明細(xì)表(申請(qǐng)物資表)同時(shí)進(jìn)行插入操作insert:

<!--對(duì)申請(qǐng)主表插入一條記錄 -->
<insert id="save" parameterType="com.bootdo.purchase.domain.ApplyDo" useGeneratedKeys="true" keyProperty="applyId">
INSERT INTO pur_apply
(apply_no,apply_depart_id,apply_person_id,apply_date,apply_estiamount,apply_status)
VALUES
(#{applyNo},
(SELECT dept_id FROM mat_department WHERE dept_name = #{deptName} ),
(SELECT sta_id FROM mat_staff WHERE sta_name = #{staName} ),
#{applyDate},#{applyEstiAmount},#{applyStatus})
<selectKey keyProperty="applyId" resultType="Integer" order="AFTER">
SELECT LAST_INSERT_ID()
</selectKey>
</insert>以上注:useGeneratedKeys="true" keyProperty="applyId" 或 <selectKey keyProperty="applyId" resultType="Integer" order="AFTER"> SELECT LAST_INSERT_ID() </selectKey>,可獲取數(shù)據(jù)表中的自增的apply_id存放在持久類ApplyDo中的屬性名applyId,applyId也是明細(xì)表對(duì)應(yīng)主表的外鍵,對(duì)應(yīng)持久類ApplyItemDo中的屬性名itemApplyId.
<!--對(duì)明細(xì)表插入單條記錄 -->
<insert id="saveDetail" parameterType="com.bootdo.purchase.domain.ApplyItemDo" >
INSERT INTO pur_apply_detail
(item_apply_id,item_name,item_type,item_number,item_unit,item_estiprice,item_purpose,item_demdate,item_remake)
VALUES
(#{itemApplyId},#{itemName},#{itemType},#{itemNumber},#{itemUnit},#{itemEstiprice},#{itemPurpose},#{itemDemdate},#{itemRemake})
</insert>ApplyServiceImpl.java:
@Autowired
public ApplyDao applyDao;
@Override
public int save(ApplyDo applyDo) {
//主表插入一條記錄
int count = applyDao.save(applyDo);
int count2 = 0;
int applyId = applyDo.getApplyId();
//明細(xì)表插入多條記錄
for(ApplyItemDo items : applyDo.getItemDoList() ){
items.setItemApplyId(applyId);
count2 = applyDao.saveDetail(items);
}
return count2;
}到此這篇關(guān)于mybatis主表與明細(xì)表一對(duì)多的同時(shí)插入操作方法的文章就介紹到這了,更多相關(guān)mybatis主表與明細(xì)表一對(duì)多同時(shí)插入內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
springboot+mybatis+redis 二級(jí)緩存問(wèn)題實(shí)例詳解
Mybatis默認(rèn)沒(méi)有開(kāi)啟二級(jí)緩存,需要在全局配置(mybatis-config.xml)中開(kāi)啟二級(jí)緩存。本文講述的是使用Redis作為緩存,與springboot、mybatis進(jìn)行集成的方法。需要的朋友參考下吧2017-12-12
Spring Profile與PropertyPlaceholderConfigurer項(xiàng)目多環(huán)境配置切換
這篇文章主要介紹了Spring Profile與PropertyPlaceholderConfigurer項(xiàng)目多環(huán)境配置切換方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09
Java消息隊(duì)列的簡(jiǎn)單實(shí)現(xiàn)代碼
本篇文章主要介紹了Java消息隊(duì)列的簡(jiǎn)單實(shí)現(xiàn)代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-07-07
Java使用EasyExcel動(dòng)態(tài)添加自增序號(hào)列
本文將介紹如何通過(guò)使用EasyExcel自定義攔截器實(shí)現(xiàn)在最終的Excel文件中新增一列自增的序號(hào)列,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09
Java日期時(shí)間字符串和毫秒相互轉(zhuǎn)換的方法
這篇文章主要為大家詳細(xì)介紹了Java日期時(shí)間字符串和毫秒相互轉(zhuǎn)換的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-12-12
JDK8中的HashMap初始化和擴(kuò)容機(jī)制詳解
這篇文章主要介紹了JDK8中的HashMap初始化和擴(kuò)容機(jī)制,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06
使用IDEA搭建Hadoop開(kāi)發(fā)環(huán)境的操作步驟(Window10為例)
經(jīng)過(guò)三次重裝,查閱無(wú)數(shù)資料后成功完成hadoop在win10上實(shí)現(xiàn)偽分布式集群,以及IDEA開(kāi)發(fā)環(huán)境的搭建。一步一步跟著本文操作可以避免無(wú)數(shù)天坑2021-07-07

