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

b2c网站开发安卓优化大师手机版下载

b2c网站开发,安卓优化大师手机版下载,ps做网站广告logo,太原装修公司哪家好苍穹外卖|项目日记(day04) 前言: 今天主要是接口开发, 涉及的新东西不多, 需要注意的只有多表联查和修改的逻辑,今日难点: 1.菜品的停起售状态设置 2.套餐的停起售状态设置 3.动态sql中的 useGeneratedKeys 与 keyProperty 两个参数 一. 菜品的停起售状态设置 ​ 在菜品的停售中…

苍穹外卖|项目日记(day04)

前言: 今天主要是接口开发, 涉及的新东西不多, 需要注意的只有多表联查和修改的逻辑,
在这里插入图片描述

今日难点:

1.菜品的停起售状态设置

2.套餐的停起售状态设置

3.动态sql中的 useGeneratedKeys 与 keyProperty 两个参数

一. 菜品的停起售状态设置

​ 在菜品的停售中, 包含其菜品的套餐与需停售, 所以也就涉及到两张表的修改.

 /*** 菜品的停售与起售** @param id* @param status*/@Override@Transactionalpublic void setStatus(Integer status, Long id) {Dish dish = Dish.builder().status(status).id(id).build();dishMapper.update(dish);if(status == StatusConstant.DISABLE){// 如果是停售, 与菜品相关的套餐也要停售List<Long> dishid = new ArrayList<>();dishid.add(id);// 根据关联表获取需upadated的套餐List<Long> setmealid = setmealDishMapper.getSetmealIdsByDishIds(dishid);if(setmealid != null && setmealid.size() > 0) {setmealid.forEach(setmealId -> {// 根据id进行updateSetmeal setmeal = Setmeal.builder().id(setmealId).status(status).build();setmealMapper.update(setmeal);});}}}

二. 套餐的停起售状态设置

 /*** 套餐起售、停售* @param status* @param id*/@Override@Transactionalpublic void startOrStop(Integer status, Long id) {//起售套餐时,判断套餐内是否有停售菜品,有停售菜品提示"套餐内包含未启售菜品,无法启售"if(status == StatusConstant.ENABLE){//select a.* from dish a left join setmeal_dish b on a.id = b.dish_id where b.setmeal_id = ?List<Dish> dishList = dishMapper.getBySetmealId(id);if(dishList != null && dishList.size() > 0){dishList.forEach(dish -> {if(StatusConstant.DISABLE == dish.getStatus()){throw new SetmealEnableFailedException(MessageConstant.SETMEAL_ENABLE_FAILED);}});}}Setmeal setmeal = Setmeal.builder().id(id).status(status).build();setmealMapper.update(setmeal);

三. 动态sql的两个参数

一、参数含义

1. useGeneratedKeys="true"

  • 作用:启用数据库自动生成的主键获取功能
  • 默认值false(不自动获取生成的主键)
  • 适用数据库:支持自动生成主键的数据库(如 MySQL 的 AUTO_INCREMENT,Oracle 的序列等)

2. keyProperty="id"

  • 作用:指定将获取到的主键值设置到哪个 Java 对象属性中
  • 值格式:对应 Java 对象的属性名,支持嵌套属性(如 user.id

二.示例

1. 单条记录插入后获取主键

典型场景:插入一条新记录后,需要立即使用该记录的主键进行后续操作

// mapper.xml
<insert id="insertUser" useGeneratedKeys="true" keyProperty="id">INSERT INTO users(username, email) VALUES(#{username}, #{email})
</insert>

java代码示例:

// service层
User user = new User();
user.setUsername("张三");
user.setEmail("zhangsan@example.com");
userMapper.insertUser(user);
// 插入后,user.getId() 会自动被赋值为数据库生成的主键值
System.out.println("新用户ID:" + user.getId());
2.修改记录后获取主键

典型场景: 修改一条记录, 需要立即使用该记录的主键进行后续操作

// mapper.xml
<update id="update" useGeneratedKeys="true" keyProperty="id">update setmeal<set><if test="categoryId != null">category_id = #{categoryId},</if><if test="name != null and name != ''">name = #{name},</if><if test="price != null">price = #{price},</if><if test="status != null">status = #{status},</if><if test="description != null">description = #{description},</if><if test="image != null">image = #{image},</if></set>where id = #{id}</update>
http://www.dtcms.com/wzjs/35808.html

相关文章:

  • 网络工程是学啥的山东seo优化
  • 微信app官方下载安装杭州seo靠谱
  • 河南海绵城市建设网站社群营销活动策划方案
  • 单位建设网站注意点软文广告经典案例分析
  • 建设部办公厅网站辽宁好的百度seo公司
  • 现在最流行的网站开发工具google关键词排名
  • 搞定设计网站做的图怎么下载不了今日国际新闻头条
  • 门户网站建设工作方案培训体系搭建
  • 做网站找客源百度一下就会知道了
  • 贵阳做网站哪家公司好手机广告推广软件
  • 成都商城网站建设地址快速排名怎么做
  • 常德政府网站网页设计工资一般多少
  • 深圳网站做的好的公司名称推广普通话手抄报
  • 阿升网站免费学设计百度注册网站
  • 新冠变异毒株最新消息搜索引擎优化的核心是
  • 合肥网站推广外包公司旅游新闻热点
  • 北京企业网站建设方重庆关键词快速排名
  • 淘宝店铺可以做网站优化么佛山网站建设
  • 阿里云安装网站百度搜索官网
  • 东莞营销网站建设服务拉新推广平台
  • 《网站建设》项目实训报告seo资讯推推蛙
  • 上海网站建设哪家公司好百度竞价关键词出价技巧
  • java开发的手机网站建设培训网站排名
  • 电商平台证明怎么开seo排名怎么做
  • 深圳龙华区招聘网最新招聘信息南京搜索引擎推广优化
  • 武威做网站社交网络的推广方法有哪些
  • 潍坊住房公积金中心快速网站排名优化
  • 网上开店怎么找货源湖南seo博客seo交流
  • 网站整体建设方案设计app推广是什么意思
  • 外汇直播室都是网站做的获客渠道有哪些