前端向后端传递的数据格式
定义一个接收数据的实体类
public class Specification implements Serializable {
private TbSpecification specification;
private List<TbSpecificationOption> specificationOptionList;
public Specification() {
}
public TbSpecification getSpecification() {
return specification;
}
public void setSpecification(TbSpecification specification) {
this.specification = specification;
}
public Specification(TbSpecification specification, List<TbSpecificationOption> specificationOptionList) {
this.specification = specification;
this.specificationOptionList = specificationOptionList;
}
public List<TbSpecificationOption> getSpecificationOptionList() {
return specificationOptionList;
}
public void setSpecificationOptionList(List<TbSpecificationOption> specificationOptionList) {
this.specificationOptionList = specificationOptionList;
}
}
把一个数据对象的两个属性分别插入到两张表中,同时这两张表存在关联关系
关联规格id
mybatis的id回显
插入数据的id字段是自增的,当我们完成插入操作后,mybatis不会把id在进行赋值给插入之前的变量
在需要id回显的数据库操作语句的mapper.xml中配置
service层
public void addSpecification(Specification specification) {
specificationMapper.insert(specification.getSpecification());//插入规格
//循环插入规格选项
for(TbSpecificationOption specificationOption:specification.getSpecificationOptionList()){
specificationOption.setSpecId(specification.getSpecification().getId());//设置规格ID
specificationOptionMapper.insert(specificationOption);
}
}
controller层
@RequestMapping("/add")
public Result addSpecificaton(@RequestBody Specification entity){
try {
specificationService.addSpecification(entity);
return new Result(true,"添加成功!");
}catch (Exception e){
e.printStackTrace();
return new Result(false,"添加失败!");
}
}