您的位置:首页 > 编程语言 > Java开发

SpringMVC同时保存两张表思路

2015-09-17 09:05 579 查看
如果需同时保存两张表,一个用户表,一个订单表,当点击保存按钮时,通过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;">@Service
public class AddorderServiceImpl implements AddorderServiceI {
@Autowired
private BaseDaoI<TOrder> bd;
@Autowired
private BaseDaoI<TRegisterUser> ru;
/**
* 添加订单
*/
@Override
public 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;
}
/**
* 判断用户是否存在
*/
@Override
public 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;
}

/**
* 保存新用户
*/
@Override
public 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{

@Autowired
private AddorderServiceI addorderService;

/**
*添加订单控制器
* @author:shichenglin
* @date:2015-9-15,下午6:33:20
* @Title:save
* @return:Json
*/
@RequestMapping("/save")
@ResponseBody
public 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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: