項目需求是,一張表添加數據的同時,另外一張表也需要添加數據,話不多說,直接上代碼。
1.Controller,我把兩個DTO直接放到一個@RequestBody中。其中throws是后台獲取當前時間拋出的異常,下面有代碼。
1 @PostMapping("/addPrize/{id}") 2 public AdminResponse addPrize (@PathVariable Integer id, 3 @RequestBody PrizeDTO prizeDTO,VipGiftDTO vipGiftDTO, 4 @SessionAttribute("loginMember") Administrator administrator 5 )throws ParseException{ 6 activeLuckyService.insertPrize(id,prizeDTO, administrator,vipGiftDTO); 7 return new AdminResponse(); 8 }
2.Service層
1 void insertPrize(Integer id, PrizeDTO prizeDTO, Administrator administrator,VipGiftDTO vipGiftDTO)throws ParseException;
3.Impl層
1 public void insertPrize(Integer id, PrizeDTO prizeDTO, Administrator administrator,VipGiftDTO vipGiftDTO) 2 throws ParseException { 3 long bankId = getBankId(administrator); 4 Prize s = new Prize(); 5 BeanUtils.copyProperties(prizeDTO,s); 6 //隨機給的固定是4,以后根據修改 7 s.setPrizeType(4); 8 //不確定是什么,隨機給的,等最后確認 9 s.setPrizeId(1L); 10 s.setActiveId(id); 11 pize.insertSelective(s); 12 13 14 VipGift v = new VipGift(); 15 BeanUtils.copyProperties(vipGiftDTO,v); 16 v.setBankPhone(administrator.getUsername()); 17 v.setBankReferrer(administrator.getPassword()); 18 v.setStatus(0); 19 v.setPrizeId(s.getPrizeId()); 20 21 22 SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//設置日期格式 23 String now = df.format(new Date()); 24 Date sj = df.parse(now); 25 v.setCreateTime(sj); 26 v.setUpdateTime(sj); 27 v.setBranchName(""); 28 vip.insertSelective(v); 29 }
4.前台
5.之前報錯信息,流關閉了
總結:根據項目需求,之前做的是Controller放入兩個@RequestBody,所以試了一下前台請求兩個請求路徑還是不可以,但是SpringMVC只能獲取到一個,所以就試了試把兩個DTO放到一個@RequestBody中,后台可以獲取到值,可以插入到數據庫中。
之前想過手寫兩條SQL插入語句,然后插入到表中,但是用的是自帶的插入方法,所以就直接奔着這種方法去改了,最后成功了。
網上的方法有很多,但是沒有去試過,所以不好做任何的評價。
如有不對地方希望各位指正、留言