当前位置: 首页 > news >正文

鲜花网站数据库建设职业技能培训网

鲜花网站数据库建设,职业技能培训网,杭州网站建设是什么,陕西高速公路建设网站文章目录1 MyBatis中Controller层List集合接收数据,泛型添加与否1.1 案例场景1.2 应该用什么接收1.3 是否可以用其他方式接收?1.4 LIst集合接收可否不指定泛型1.5 mybatis中使用基本类型接收数据?resultType是集合中的元素的类型,…

文章目录

  • 1 MyBatis中Controller层List集合接收数据,泛型添加与否
    • 1.1 案例场景
    • 1.2 应该用什么接收
    • 1.3 是否可以用其他方式接收?
    • 1.4 LIst集合接收可否不指定泛型
    • 1.5 mybatis中使用基本类型接收数据?resultType是集合中的元素的类型,并不是集合本身
  • 2 在Service层实现类中,为何要build相关构建器(new对象进行Set方法)
    • 2.1 build方法是干啥的?
    • 2.2 在 Service实现类中,build相关构建器,为何还要与Mapper层建立连接?
    • 2.3 在Mapper的XML映射文件中执行的语句
    • 2.4 思路分析
  • 3 添加套餐业务分析
    • 3.1 业务场景
    • 3.2 业务分析

1 MyBatis中Controller层List集合接收数据,泛型添加与否

1.1 案例场景

需要实现的接口:根据分类id查询菜品,会返回多个菜品

1.2 应该用什么接收

问题场景:那么返回的菜品,应该用什么接收?

回答:应用LIst集合接收

分析:返回的是多组菜品信息参数,因此应用数组或者集合接收,又因为集合相比较与数组,大小可变,因此选择集合。

1.3 是否可以用其他方式接收?

是否可以用实体类接收?

回答:不能,理由:因为实体类只能生成唯一的对象。

分析:返回的是多组菜品信息参数,因此应用数组或者集合接收,又因为集合相比较与数组,大小可变,因此选择集合。

1.4 LIst集合接收可否不指定泛型

在这里插入图片描述

回答:不可以,会出现如上错误,而且mybatis不支持直接用list来接收

总结:List集合不能直接从前端传到后台,需要借助实体类才能接收到集合。

1.5 mybatis中使用基本类型接收数据?resultType是集合中的元素的类型,并不是集合本身

分析:当返回多条一个结果时,并不是在resultType中写成List类型。如下图的错误xml中配置:
在这里插入图片描述
会发生如下错误:在这里插入图片描述

resultType是集合中的元素的类型,并不是集合本身。,正确写法示例:
在这里插入图片描述

2 在Service层实现类中,为何要build相关构建器(new对象进行Set方法)

2.1 build方法是干啥的?

在这里插入图片描述

 Dish build = Dish.builder().status(StatusConstant.ENABLE).categoryId(categoryId).build();

解释:实体类.build,相当于new对象,并进行set构造器方法,为实体类中的对象赋值,实体类本来是无值的。

2.2 在 Service实现类中,build相关构建器,为何还要与Mapper层建立连接?

联系场景解决:
场景:
在这里插入图片描述
在这里插入图片描述

2.3 在Mapper的XML映射文件中执行的语句

 <select id="list" resultType="com.sky.entity.Dish" parameterType="com.sky.entity.Dish">
<!--            <select id="list" resultType="java.util.List">-->select *from dish<where><if test="categoryId != null">category_id = #{categoryId}</if><if test="status != null">and status = #{status}</if><if test="name != null">and name like ('%',#{name},'%');</if></where></select>

相当于:

select * from dish where category_id=11 and  status=1 and name like '%酒%';

2.4 思路分析

在前端获取到 category_id 和 status 的值,然后service业务层,做了处理,即限制查询状态为(StatusConstant.ENABLE,已经被定义成1)在售,同时前端每个类别已经对应了一个category_id,因此以这两属性为限制,在XML中作限制进行查询。

select * from dish where category_id=11 and  status=1 and name like '%酒%';

3 添加套餐业务分析

3.1 业务场景

在这里插入图片描述
在这里插入图片描述
数据库中有,套餐表菜品关系表

3.2 业务分析

  • 首先,前端往后端传入参数,包含套餐信息菜品、套餐信息(在添加菜品那个按钮上),后端定义的DTO层接收到数据。
    在这里插入图片描述
  • 其次,接收到service层进行业务处理,先是将setmealDTO接收到的数据,拷贝到setmeal实体类中
    在这里插入图片描述
  • 紧接着,再将实体类setmeal对象中数据根据SQL语句插入套餐表中setmealMapper.insert(setmeal);
  • 再然后,获取下数据库中套餐的主键ID
    Long setmealId = setmeal.getId();
  • 然后,获取后端接收到setmealDTO实体类中每一个SetmealDishes集合(前端可以传多个菜品,每个套餐可以包含多个菜品)
    List<SetmealDish> setmealDishes = setmealDTO.getSetmealDishes();
  • 紧接着遍历所获得的的SetmealDishes集合,得到每一个套餐菜品的信息
    setmealDishes.forEach(setmealDish -> { setmealDish.setSetmealId(setmealId); });
  • 最后,再将每一个SetmealDishes信息插入到数据库的SetmealDishes表中
    setmealDishMapper.insertBatch(setmealDishes);
http://www.tj-hxxt.cn/news/44459.html

相关文章:

  • 如何让自己的网站被搜索引擎收录郑州seo外包顾问
  • 游戏直播网站怎么做排名优化网站建设
  • 凡科网站做门户网怎么样百度官网优化
  • 网站动态维护客服sem优化怎么做
  • 密云住房和城乡建设部网站首页bt磁力搜索神器
  • php如何给网站做支付接口seo网站分析
  • 做营销型网站要多少钱新冠疫情最新消息
  • wordpress 数据库名百度seo查询
  • 做网站是先买域名还是站长之家查询域名
  • 建站之星安装模板失败西安网是科技发展有限公司
  • 东莞虎门邮政编码seo排名怎么优化软件
  • 东莞中小企业网站建设教育机构排名
  • 网站首页的psd怎么做培训学校招生方案范文
  • 网站seo快速排名网站设计公司北京
  • wordpress做物流网站杭州网站seo公司
  • 网站建设平台哪个好seo站长工具推广平台
  • wordpress 后台显示id福州seo兼职
  • 网站搭建网站管理网络推广费用计入什么科目
  • wordpress 网站访问认证页面秦皇岛seo招聘
  • 青海建设厅网站尚少岩seo优化网络公司排名
  • 佛山做网站制作蜘蛛搜索
  • 东莞市建设局门户网站外链网盘
  • 电子商城网站开发支持手机端服务营销策略
  • 宜昌模板网站建设上海快速优化排名
  • 做夺宝网站要办理什么意思搜索引擎营销方法主要有三种
  • 赣州万图网络科技有限公司网络优化app
  • 八方资源网做网站优化怎么样企业网站排名优化
  • 黄江镇做网站安卓优化大师下载安装
  • 哪个网站专门做邮轮旅游的重庆优化seo
  • 北京网站优化网上海网站seo