项目需求是,一张表添加数据的同时,另外一张表也需要添加数据,话不多说,直接上代码。
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插入语句,然后插入到表中,但是用的是自带的插入方法,所以就直接奔着这种方法去改了,最后成功了。
网上的方法有很多,但是没有去试过,所以不好做任何的评价。
如有不对地方希望各位指正、留言