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存放在持久類(lèi)ApplyDo中的屬性名applyId,applyId也是明細(xì)表對(duì)應(yīng)主表的外鍵,對(duì)應(yīng)持久類(lèi)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)文章
基于Map的computeIfAbsent的使用場(chǎng)景和使用方式
這篇文章主要介紹了基于Map的computeIfAbsent的使用場(chǎng)景和使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09MyBatis?handleResultSet結(jié)果集解析過(guò)程示例
這篇文章主要為大家介紹了MyBatis?handleResultSet結(jié)果集解析過(guò)程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02java web將數(shù)據(jù)導(dǎo)出為Excel格式文件代碼片段
這篇文章主要為大家詳細(xì)介紹了java web將數(shù)據(jù)導(dǎo)出為Excel格式文件代碼片段,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-01-01Spring Cloud Gateway調(diào)用Feign異步問(wèn)題記錄
這篇文章主要介紹了Spring Cloud Gateway調(diào)用Feign異步問(wèn)題記錄,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04SpringBoot項(xiàng)目中出現(xiàn)不同端口跨域問(wèn)題的解決方法
這篇文章主要介紹了SpringBoot項(xiàng)目中出現(xiàn)不同端口跨域問(wèn)題的解決方法,文中介紹了兩種解決方法,并給出了詳細(xì)的代碼供大家參考,具有一定的參考價(jià)值,需要的朋友可以參考下2024-03-03SpringBoot使用RedisTemplate.delete刪除指定key失敗的解決辦法
本文主要介紹了SpringBoot使用RedisTemplate.delete刪除指定key失敗的解決辦法,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03