Mybatis多表新增
Mybatis多表新增
開發工具與關鍵技術:eclipse/ mybatis多表新增 作者:苦行者 撰寫時間:2021年5月28日Mybatis的多表新增并不是什么非常難的技術點,只要記住以下兩個關鍵點即可。
1、 使用事務管理
2、 獲取表的新增主鍵ID
當我們新增了第一張表,再新增第二張表的時候,必需要拿到第一張表的新增ID,才能夠進行第二張表的新增,否則保存到數據庫中的數據就會缺少與第一張表的唯一關聯外鍵,那么如何獲取第一張表的新增ID呢?
其實非常簡單,只需要在第一張表的Mapper.xml的新增SQL語句標簽上添加上兩個屬性即可,這樣它在新增完第一張表后,通過第一張表的實體類就能獲取到它的新增ID。
下面以新增購物車為例講解具體的實現方法。
首先是jsp代碼,前端獲取數據以post請求提交數據到MainController;
MainController接收到數據,調用service層的insertMoreTable方法新增S_ShoppCar購物車與S_ShoppCartDetil購物車明細兩張表;
MainController代碼:
在新增之前,我們要把準備工作做好,第一個就是要在第一張購物車表的ShoppCarDao.xml里面的標簽上添加兩個獲取主鍵ID的屬性,如下圖所示,userGeneratedKey = “true”,KeyProperty = “購物車主鍵ID”,一般設置了這兩個屬性,那么在成功新增購物車表之后就能夠通過它的實體類去獲取到它的新增主鍵ID了;
ShoppCarDao:
ShoppCarDao.xml:
另外,為了保證兩張表的數據能夠同時完整安全地提交到數據庫,我們還應該開啟一下事務管理,這樣做的目的是一旦兩張表中如何一方新增失敗能夠及時回滾數據,保證數據的安全性;
spring-mybatis.xml配置事務管理器并開啟事務注解驅動:
配置了事務管理器并開啟事務注解驅動之后,別忘了在ShoppCarServiceImpl接口實現類里面的insertMoreTable方法上開啟一下事務注解,讓事務管理器管理該方法;
ShoppCarService接口:
ShoppCarServiceImpl接口實現類:
之后便是在insertMoreTable方法里面進行多表的新增操作(見上圖):
第一步:調用ShoppCarDao接口的insertSelective方法完成第一張購物車表的數據新增;
第二步:獲取購物車表的新增主鍵ID,把獲取到的這個新增ID往創建好的購物車明細實體類(shoppCartDetail)里面放,此時的shoppCartDetail已經攜帶了完整的數據,然之后就可以完成新增購物車明細表了。
整個多表新增最主要的便是獲取第一張表的新增主鍵ID了,其他的代碼都是一些基本的判斷,知道怎么獲取新增ID了,那么以后不管是新增兩張表還是新增三張表,都是同樣的實現方法,換湯不換藥而已。
總結
以上是生活随笔為你收集整理的Mybatis多表新增的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 程序员是青春饭?该何去何从?
- 下一篇: Exchange 2013 配置MAPI