JavaEE-SSM-订单管理-后端增删改查(二)

.2.5 添加

  • 编写OrderMapper接口中的insert方法

  • 编写OrderService接口中的save方法

  • 编写OrderServiceImpl实现类中的save方法

  • 编写OrderController中的add方法

  • 编写OrderMapper接口中的insert方法
    在这里插入图片描述

    /**
     * 插入
     * @param order
     * @return
     */
    @Insert("insert into `order`(oid,price,user_id) values(#{oid},#{price},#{userId}) ")
    public Integer insert(Order order);
  • 编写OrderService接口中的save方法
    在这里插入图片描述
   /**
     * 保存订单
     * @param order 订单信息
     * @return 是否成功, true成功,false失败
     */
    public Boolean save(Order order);
  • 编写OrderServiceImpl实现类中的save方法
    在这里插入图片描述
    @Override
    public Boolean save(Order order) {
        // 保存 0失败,1成功
        Integer result = orderMapper.insert(order);
        // 处理结果
        //return result == 1 ? true : false;
        return result == 1;
    }
  • 编写OrderController中的add方法

在这里插入图片描述
*

   /**
     * 添加
     * @param order
     * @return
     */
    @PostMapping
    public ResponseEntity<String> add(@RequestBody Order order) {
        //保存
        Boolean result = orderService.save(order);
        //处理结果(临时写法)
        if(result) {
            //成功
            return ResponseEntity.ok("添加成功");
        } else {
            //失败
            return ResponseEntity.ok("添加失败");
        }
    }
  • 测试:

    {
      "oid": "x006",
      "price": 998,
      "userId": "u001"
    }
    

在这里插入图片描述

2.2.6 修改

  • 编写OrderMapper接口中的update方法

  • 编写OrderService接口中的update方法

  • 编写OrderServiceImpl实现类中的update方法

  • 编写OrderController中的update方法

  • 编写OrderMapper接口中的update方法

    在这里插入图片描述

        /**
         * 修改
         * @param order
         * @return
         */
        @Update("update `order` set price=#{price}, user_id=#{userId} where oid=#{oid}")
        public Integer update(Order order);
    
  • 编写OrderService接口中的update方法

    在这里插入图片描述

        /**
         * 修改
         * @param order
         * @return
         */
        public Boolean update(Order order);
    
  • 编写OrderServiceImpl实现类中的update方法

    在这里插入图片描述

        @Override
        public Boolean update(Order order) {
            //修改: 0失败,=1成功 >1失败
            Integer result = orderMapper.update(order);
            //处理结果
            return result == 1;
        }
    
  • 编写OrderController中的update方法

    在这里插入图片描述

        /**
         * 修改
         * @param order
         * @return
         */
        @PutMapping
        public ResponseEntity<String> update(@RequestBody Order order) {
            //更新
            Boolean result = orderService.update(order);
            //处理结果
            if(result) {
                return ResponseEntity.ok("更新成功");
            }
            // 失败
            return ResponseEntity.ok("更新失败");
        }
    
  • 测试

    {
      "oid": "x006",
      "price": 9998,
      "userId": "u002"
    }
    

    在这里插入图片描述

2.2.7 删除

  • 编写OrderMapper接口中的deleteById方法

  • 编写OrderService接口中的deleteById方法

  • 编写OrderServiceImpl实现类中的deleteById方法

  • 编写OrderController中的deleteById方法

  • 编写OrderMapper接口中的deleteById方法

    在这里插入图片描述

        /**
         * 通过id删除
         * @param oid
         * @return
         */
        @Delete("delete from `order` where oid=#{oid}")
        public Integer deleteById(@Param("oid") String oid);
    
  • 编写OrderService接口中的deleteById方法

    在这里插入图片描述

        /**
         * 通过id删除
         * @param oid
         * @return
         */
        public Boolean deleteById(String oid);
    
  • 编写OrderServiceImpl实现类中的deleteById方法
    在这里插入图片描述

        @Override
        public Boolean deleteById(String oid) {
            //删除
            Integer result = orderMapper.deleteById(oid);
            //处理结果
            return result == 1;
        }
    
  • 编写OrderController中的deleteById方法

        /**
         * 删除
         * @param oid
         * @return
         */
        @DeleteMapping("/{oid}")
        public ResponseEntity<String> deleteById(@PathVariable("oid") String oid) {
            //删除
            Boolean result = orderService.deleteById(oid);
            //处理
            if(result) {
                return ResponseEntity.ok("删除成功");
            }
            return ResponseEntity.ok("删除失败");
        }
    

2.2.8 关联查询

  • 查询订单时,显示关联的用户信息(查询所有、查询详情)

  • 编写JavaBean:User

  • 编写Mapper:UserMapper,通过id查询详情selectById

  • 修改JavaBean:Order,添加User属性

  • 修改OrderServiceImpl,注入UserMapper,完成关联查询

  • 编写JavaBean:User

    package com.czxy.domain;
    
    import lombok.Data;
    
    
    //@Data
    public class User {
        private String uid;
        private String username;
    
        //重写 getter和setter方法、toString方法
    }
    
    
  • 编写Mapper:UserMapper,通过id查询详情selectById

    package com.czxy.mapper;
    
    import com.czxy.domain.User;
    import org.apache.ibatis.annotations.Mapper;
    import org.apache.ibatis.annotations.Param;
    import org.apache.ibatis.annotations.Select;
    
    
    @Mapper
    public interface UserMapper {
    
        /**
         * 通过id查询详情
         * @param uid
         * @return
         */
        @Select("select * from user where uid=#{uid}")
        public User selectById(@Param("uid") String uid);
    }
    
    
  • 修改JavaBean:Order,添加User属性

    package com.czxy.domain;
    
    import lombok.Data;
    
    
    //@Data
    public class Order {
        private String oid;
        private Integer price;
        private String userId;
        //多对一,多个订单属于一个用户
        private User user;
        
        //重写 getter和setter方法、toString方法
    }
    
  • 修改OrderServiceImpl,注入UserMapper,完成关联查询

    package com.czxy.service.impl;
    
    import com.czxy.domain.Order;
    import com.czxy.domain.User;
    import com.czxy.mapper.OrderMapper;
    import com.czxy.mapper.UserMapper;
    import com.czxy.service.OrderService;
    import org.springframework.stereotype.Service;
    import org.springframework.transaction.annotation.Transactional;
    
    import javax.annotation.Resource;
    import java.util.List;
    
    
    @Service
    @Transactional
    public class OrderServiceImpl implements OrderService {
        @Resource
        private OrderMapper orderMapper;
        @Resource
        private UserMapper userMapper;
    
        @Override
        public List<Order> selectAll() {
            //查询
            List<Order> orderList = orderMapper.selectAll();
            //关联查询
            for(Order order: orderList) {
                User user = userMapper.selectById(order.getUserId());
                order.setUser(user);
            }
            //返回
            return orderList;
        }
    
        @Override
        public Order selectById(String oid) {
            //查询
            Order order = orderMapper.selectById(oid);
            //关联查询
            User user = userMapper.selectById(order.getUserId());
            order.setUser(user);
            //返回
            return order;
        }
    
    
  • 测试

    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/342898.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MySQL之数据库DDL

文章目录 MySQL数据库基本操作数据定义DDL对数据库的常用操作创建表修改表格式结构 MySQL数据库基本操作 首先我们先了解SQL的语言组成&#xff0c;他分为四个部分 数据定义语言&#xff08;DDL&#xff09;数据操纵语言&#xff08;DML&#xff09;数据控制语言&#xff08;…

如何使用宝塔面板搭建Typecho博客站点并结合内网穿透远程访问

文章目录 前言1. 安装环境2. 下载Typecho3. 创建站点4. 访问Typecho5. 安装cpolar6. 远程访问Typecho7. 固定远程访问地址8. 配置typecho 前言 Typecho是由type和echo两个词合成的&#xff0c;来自于开发团队的头脑风暴。Typecho基于PHP5开发&#xff0c;支持多种数据库&#…

算法(4)——前缀和

目录 一、前缀和的定义 二、一维前缀和 三、一维前缀和OJ题 3.1、前缀和 3.2、寻找数组中心下标 3.3、除自身以外数组的乘积 3.4、和为K的数组 3.5、和可被K整除的子数组 3.6、连续数组 四、二位前缀和 4.1、二维前缀和 4.2、矩阵区域和 一、前缀和的定义 对于一个…

Quartz框架中的Corn表达式

Cron 表达式是一个字符串&#xff0c;分为 6 或 7 个域&#xff0c;每一个域代表一个含义 Cron 有如下两种语法格式&#xff1a; &#xff08;1&#xff09;Seconds Minutes Hours Day Month Week Year &#xff08;2&#xff09;Seconds Minutes Hours Day Month Week 一、…

Java SE:面向对象(下)

1. static关键字 静态区的特点&#xff1a;静态区里面的每一样东西都是唯一有且仅有一个的&#xff0c;如此时str1 "abc"即此时静态区里面已经创建了字符串abc并将abc地址赋给str1&#xff0c;后面在进行赋值也不会在静态区开辟一串新的"abc" 1.1 static修…

蓝桥杯省赛无忧 课件38 第4次学长带练配套课件

01 最大数组和 02 四元组问题 03 鸡哥的购物挑战 04 冒险者公会 05 明日方舟大挑战 06 七段码

一.Winform使用Webview2(Edge浏览器核心) 创建demo(Demo1)实现回车导航到指定地址

Winform使用Webview2创建demo1实现回车导航到指定地址 往期目录参考文档实现1.安装visual studio2.创建单窗口应用3.修改项目中的窗体名称MainForm4.添加按钮5.添加窗口Demo16.在Demo1中添加WebView2 SDK7.在Demo1窗体中选择添加textbox和webview28.在MainForm.cs窗体中添加but…

idea——git提交到本地记录如何退回/删除

目录 一、git提交到本地记录如何退回/删除 一、git提交到本地记录如何退回/删除 git提交到本地记录&#xff0c;如下图【更新】记录&#xff0c;表示本次提交到git本地需要退回/删除的操作&#xff1a; 选中项目&#xff0c;右键点击【git】——>【Show History】——>…

vscode运行python,终端能正常运行,输出(Code Runner)不能正常运行

右键->Run Code报错&#xff1a; [Done] exited with code9009 in 0.111 seconds 我的解决方案&#xff1a;仔细检查自己选的python.exe&#xff08;解释器&#xff09;在path环境变量中是否存在或路径是否正确&#xff01;&#xff01;&#xff01; 我就是太自信了&#xf…

REVIT二次开发 自动门窗墙体标注

步骤1 步骤2 步骤3 using System; using System.Collections.Generic; using System.Linq; using System

爬虫安居客新房

一、首先看网址 后面有全部代码 https://hf.fang.anjuke.com/loupan/baohequ/p3 这种形式很好分析&#xff0c;https://hf.fang.anjuke.com/loupan/行政区域页码 xinfang_area ["feixixian", "baohequ", "shushanqu", "luyangqu",…

梯度消失是什么意思

梯度 在数学和计算机科学中&#xff0c;梯度是一个向量&#xff0c;表示函数在某一点处的变化率和变化的方向。梯度是多变量函数的偏导数组成的向量。 在机器学习中&#xff0c;梯度也被称为损失函数对模型参数的偏导数。当我们训练一个模型时&#xff0c;通过梯度下降法或其变…

外包干了4个月,技术退步明显.......

先说一下自己的情况&#xff0c;大专生&#xff0c;18年通过校招进入武汉某软件公司&#xff0c;干了接近4年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落! 而我已经在一个企业干了四年的功能测…

大模型日报-20240122

清华、小米、华为、 vivo、理想等多机构联合综述&#xff0c;首提个人LLM智能体、划分5级智能水平 https://mp.weixin.qq.com/s/JYB4BzsXhWF8pEUUkvn_GQ 想必这些唤醒词中至少有一个曾被你的嘴发出并成功呼唤出了一个能给你导航、讲笑话、添加日程、设置闹钟、拨打电话的智能个…

硅像素传感器文献调研(六)

写在前面&#xff1a; 感叹一下前人的智慧&#xff0c;保护环结构&#xff1f;保护环——场限制环&#xff1f;怎么发展着还改名字了哈哈哈哈哈 发现一个领域的文章是读得越多越好读了&#xff0c;知识都是那些。 发现大家的引言写的都很像&#xff0c;背后似乎是有一种套路…

Python基础第八篇(Python异常处理,模块与包)

文章目录 一、了解异常二、捕获异常&#xff08;1&#xff09;.异常案例代码&#xff08;2&#xff09;.读出结果 三、异常的传递&#xff08;1&#xff09;.异常传递案例代码&#xff08;2&#xff09;.读出结果 四、Python模块&#xff08;1&#xff09;.模块的导入&#xff…

【RainCloud】搭建网站!

一.领取一个免费域名和SSL证书&#xff0c;和CDN https://www.rainyun.com/z22_ 1.打开网站链接2.在网站主页上&#xff0c;您会看到一个"登陆/注册"的选项。 3.点击"登陆/注册"&#xff0c;然后选择"微信登录"选项。 4.使用您的手机扫描二维…

项目实战——Qt实现FFmpeg音视频转码器

文章目录 前言一、移植 FFmpeg 相关文件二、绘制 ui 界面三、实现简单的转码四、功能优化1、控件布局及美化2、缩放界面3、实现拖拽4、解析文件5、开启独立线程6、开启定时器7、最终运行效果 五、附录六、资源自取 前言 本文记录使用 Qt 实现 FFmepg 音视频转码器项目的开发过…

nginx代理本机多个端口应用

说明&#xff1a; 需求&#xff1a;我当前只有一个端口的授权&#xff0c;比如80&#xff0c;但是我的服务有多个且在不同的端口&#xff0c;比如8081&#xff0c;8082&#xff0c;我希望所有的请求通过都通过80端口进来&#xff0c;然后根据不同的文根怼到不同的端口&#xff…

专业ScrumMaster(高级)- PSM II 认证班,Scrum.org认证PSM II官方认证班

课程简介 Scrum是目前运用最为广泛的敏捷开发方法&#xff0c;是一个轻量级的项目管理和产品研发管理框架&#xff0c;旨在最短时间内交付最大价值。根据2022年全球敏捷状态报告&#xff0c;Scrum的应用占比已经达到87%。 Scrum.org 由 Scrum 的联合创始人 Ken Schwaber 创立…
最新文章