前端向後端傳遞的數據格式
定義一個接收數據的實體類
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,"添加失敗!");
}
}