SpringMVC同时保存两张表思路

来源:互联网 发布:女朋友突然说分手 知乎 编辑:程序博客网 时间:2024/06/03 17:05

如果需同时保存两张表,一个用户表,一个订单表,当点击保存按钮时,通过ajax发送请求到后台控制器controller,在控制器里面先去判断该用户是否存在,即先调用判断用户是否存在的方法,然后对该方法的返回值进行判断,如果该用户存在,则保存订单表,即调用保存订单表的方法;如果该用户不存在,先要保存用户表,即调用保存用户表的方法,然后对该方法的返回值进行判断,成功的话再去保存订单表。部分代码如下:

在service中的接口:

<span style="font-family:Microsoft YaHei;">public interface AddorderServiceI {public TOrder saveAddorder(TOrder t);//添加订单public TRegisterUser isexit(String telephone);//判断用户是否存在public TRegisterUser saveNewUser(TOrder t);//保存新用户    }</span>
在service中接口的实现方法:

<span style="font-family:Microsoft YaHei;">@Servicepublic class AddorderServiceImpl implements AddorderServiceI {@Autowiredprivate BaseDaoI<TOrder> bd;@Autowiredprivate BaseDaoI<TRegisterUser> ru;/** * 添加订单 */@Overridepublic TOrder saveAddorder(TOrder t) {TOrder od=new TOrder();BeanUtils.copyProperties(t, od);od.setOrderno(t.getOrderno());od.setOrderdate(t.getOrderdate());od.setAppointmentdate(t.getAppointmentdate());od.setAreid(t.getAreid());od.setAddress(t.getAddress());od.setRepairid(t.getRepairid());od.setRepaircontent(t.getRepaircontent());od.setOrderstatus("1");od.setUsertelphone(t.getUsertelphone());od.setUsername(t.getUsername());bd.save(od);return od;}/** * 判断用户是否存在 */@Overridepublic TRegisterUser isexit(String telephone) {String sql = "from TRegisterUser as t where t.telphone=:telephone";Map<String, Object> params = new HashMap<String, Object>();params.put("telephone",telephone);TRegisterUser s = ru.get(sql,params); return s;}/** * 保存新用户 */@Overridepublic TRegisterUser saveNewUser(TOrder t) {TRegisterUser tt=new TRegisterUser();BeanUtils.copyProperties(t, tt);tt.setAddress(t.getAddress());tt.setUsername(t.getUsername());tt.setTelphone(t.getUsertelphone());tt.setRegisterdate(t.getOrderdate());tt.setLoginname(t.getUsertelphone());tt.setUserstate("1");tt.setUsertype("1");tt.setAreaid(t.getAreid());ru.save(tt);return tt;}}</span>
控制器controller:

<span style="font-family:Microsoft YaHei;">@Controller@RequestMapping("/addorder")public class AddorderController extends BaseController{@Autowiredprivate AddorderServiceI addorderService;/***添加订单控制器* @author:shichenglin           * @date:2015-9-15,下午6:33:20      * @Title:save * @return:Json */@RequestMapping("/save")@ResponseBodypublic Json save(TOrder t,HttpServletRequest request){Json j = new Json();try {TRegisterUser s = addorderService.isexit(t.getUsertelphone());if(s==null){TRegisterUser tu= addorderService.saveNewUser(t);if(tu!=null){t.setUserid(tu.getId());TOrder to = addorderService.saveAddorder(t);if(to!=null){j.setMsg("添加订单成功!");}else{j.setMsg("添加失败!");}}}else{TOrder to = addorderService.saveAddorder(t);if(to!=null){j.setMsg("添加订单成功!");}else{j.setMsg("添加失败!");}}} catch (Exception e) {e.printStackTrace();j.setMsg(e.getMessage());}return j;}}</span>





0 0
原创粉丝点击