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

.2.5 添加

  • 编写OrderMapper接口中的insert方法

  • 编写OrderService接口中的save方法

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

  • 编写OrderController中的add方法

  • 编写OrderMapper接口中的insert方法

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

*

java 复制代码
   /**
     * 添加
     * @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("添加失败");
        }
    }
  • 测试:

    json 复制代码
    {
      "oid": "x006",
      "price": 998,
      "userId": "u001"
    }

2.2.6 修改

  • 编写OrderMapper接口中的update方法

  • 编写OrderService接口中的update方法

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

  • 编写OrderController中的update方法

  • 编写OrderMapper接口中的update方法

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

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

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

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

    json 复制代码
    {
      "oid": "x006",
      "price": 9998,
      "userId": "u002"
    }

2.2.7 删除

  • 编写OrderMapper接口中的deleteById方法

  • 编写OrderService接口中的deleteById方法

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

  • 编写OrderController中的deleteById方法

  • 编写OrderMapper接口中的deleteById方法

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

    java 复制代码
        /**
         * 通过id删除
         * @param oid
         * @return
         */
        public Boolean deleteById(String oid);
  • 编写OrderServiceImpl实现类中的deleteById方法

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

    java 复制代码
        /**
         * 删除
         * @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

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

    java 复制代码
    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属性

    java 复制代码
    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,完成关联查询

    java 复制代码
    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;
        }
  • 测试

相关推荐
10km10 分钟前
java:Apache Commons Configuration2占位符解析异常的正确解法:${prefix:name:-default}
java·apache·configuration2·变量插值·interpolation
customer0811 分钟前
【开源免费】基于SpringBoot+Vue.JS个人博客系统(JAVA毕业设计)
java·vue.js·spring boot·后端·开源
灰色人生qwer18 分钟前
SpringBoot 项目配置日志输出
java·spring boot·后端
2301_7930698228 分钟前
Spring Boot +SQL项目优化策略,GraphQL和SQL 区别,Spring JDBC 等原理辨析(万字长文+代码)
java·数据库·spring boot·sql·jdbc·orm
阿华的代码王国35 分钟前
【从0做项目】Java搜索引擎(6)& 正则表达式鲨疯了&优化正文解析
java·后端·搜索引擎·正则表达式·java项目·从0到1做项目
服务端相声演员35 分钟前
Oracle JDK、Open JDK zulu下载地址
java·开发语言
是姜姜啊!36 分钟前
java连接redis
java·redis
hhw19911237 分钟前
spring boot知识点5
java·数据库·spring boot
EQUINOX140 分钟前
lab4 CSAPP:Cachelab
java·后端·spring
customer081 小时前
【开源免费】基于SpringBoot+Vue.JS打卡健康评测系统(JAVA毕业设计)
java·vue.js·spring boot·后端·开源