一、新增菜品
api接口文档:
根据发送给服务器的请求参数创建对象类:
Controller:
Service:
新增菜品选项涉及到两张表的插入数据:菜品表+口味表
口味对象:
菜品表中的四个公共文本由AOP技术实现自动填充
由于Dish对象没有
List<DishFlavor>
这一属性,在进行对象拷贝的时候会自动对其进行忽略。
菜品口味表中有菜品id属性,并不存在于DishDTO对象中。需要通过mapper层进行完对菜品表的插入后将生成的主键id返回,再对dishDTO对象中的 List<DishFlavor>进行遍历赋值
mapper(菜品表):
xml配置(菜品表):
mapper(口味表):
由于传递的形参是一个集合,因此在动态xml配置中使用递归的方法遍历集合并插入
xml配置(口味表):
二、菜品分页查询
api接口文档:
根据网页向服务器发送的请求数据创建对象:
根据接口文档要求的返回数据类型创建对象:
以及页面数据集合中封装数据的对象:
需要注意的是,文档中这一对象的属性中包含categoryName属性,这一属性对应着口味表中的name字段,而其他属性都对应着菜品表的各个字段。
Controller:
Service:
使用PageHelper插件方法,从对象中获取 page 和 pagesize参数
使用Page集合将mapper中查询到的数据以DishVO的数据类型存储:
因此需要查询需要在两张表间进行:
Mapper: