後端接收復雜數據類型——json對象包含類對象和類對象數組

前端向後端傳遞的數據格式
在這裏插入圖片描述
定義一個接收數據的實體類

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,"添加失敗!");
	}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章