免费做图表的网站,网站建设套餐报价方案,营销策划公司的成本有哪些,网络广告营销环境发生了哪些变化涉及两张表的两个实体对象
用于在业务逻辑层和持久层#xff08;数据库访问层#xff09;之间传输数据。 DTO的主要目的是将多个实体#xff08;Entity#xff09;的部分属性或多个实体关联属性封装成一个对象#xff0c;以便在业务层进行数据传输和处理#xff0c;从而…涉及两张表的两个实体对象
用于在业务逻辑层和持久层数据库访问层之间传输数据。 DTO的主要目的是将多个实体Entity的部分属性或多个实体关联属性封装成一个对象以便在业务层进行数据传输和处理从而避免直接暴露实体对象给上层或客户端即前端的请求设计了多张表的内容 使用步骤-基于mybatisplus 1.创建表1实体类 2.创建表2实体类封装一个实体2集合 3.两张表都需创建mapperservice 4.在服务层编写方法注意这里传参使用的子类 5.对应的controller调用该方法即可
涉及两张表的一个实体和另一个实体的单个属性
这里使用到的原理也是Dto
实现步骤
1.首先定义PageDish pageinfo通过条件信息查询出dish表对象
2.其次定义PageDishDto dishDtoPage数据传输对象类集合该类是用于存取菜品分类的名称及pageinfo的信息
3.将pageinfo的信息拷贝给dishDtoPage需要注意的是,Page对象中的records使用于存取dish数据对象的但是该对象信息不包含菜品分类的类名不应该拷贝BeanUtils.copyProperties(pageinfo,dishDtoPage,records);
4.遍历查询到的pageinfo信息,该对象用于存取dish表的信息在遍历的过程中通过注入CategoryService信息为categoryName进行赋值
5.将遍历出的信息封装成一个List集合对象
6.通过 dishDtoPage.setRecords(dishDtoList),为DishDto的records字段赋值,最后返回该对象就能实现菜品分类名称的展示了bashpublic RPage page(int page,int pageSize,String name){步骤一PageDish pageinfonew Page(page,pageSize);//分页查询封装一个菜品类菜品信息/*** 设置Dish对象的查询信息*/LambdaQueryWrapperDish dishLambdaQueryWrappernew LambdaQueryWrapper();dishLambdaQueryWrapper.like(name!null, Dish::getName,name);dishLambdaQueryWrapper.orderByDesc(Dish::getUpdateTime);dishService.page(pageinfo,dishLambdaQueryWrapper);//查询步骤二PageDishDto dishDtoPagenew Page();//封装一个数据传输对象以便获取该对象的某些属性/*** 使用BeanUtils.copyProperties方法,将pageinfo拷贝给dishDtoPage,records的参数不拷贝*/// PageDish records封装的是Dish数据对象 protected ListT records;步骤三BeanUtils.copyProperties(pageinfo,dishDtoPage,records);步骤四/五ListDish records pageinfo.getRecords();//dish对象/*** 遍历Dish对象集合并为DishDto中的categoryName赋值*/ListDishDto dishDtoListrecords.stream().map((item)-{DishDto dishDtonew DishDto();//构造方法创建的对象其属性都为空需要拷贝records的值BeanUtils.copyProperties(item,dishDto);Long categoryId item.getCategoryId();Category category categoryService.getById(categoryId);//根据分类id查找分类if(category!null){String categoryName category.getName();dishDto.setCategoryName(categoryName);}return dishDto;}).collect(Collectors.toList());/*** 将page分页对象中的records重新赋值封装后在将其返回给前端页面*/步骤六dishDtoPage.setRecords(dishDtoList);return R.success(dishDtoPage);}