• services层和controller层


    services层

    我的理解,services层是编写逻辑代码语句最多的一个层,非常重要,在实际的项目中,负责调用Dao层中的mybatis,在我的项目中它调用的是这两个文件

    在这里插入图片描述
    举例代码如下

    package com.example.sfdeliverysystem.service;
    import com.example.sfdeliverysystem.dao.mybatis.StashMapper;
    import com.example.sfdeliverysystem.model.StashPO;
    import lombok.extern.slf4j.Slf4j;
    import org.springframework.stereotype.Service;
    
    @Service//加载service方法的包
    @Slf4j//加载log方法的包
    public class StashService {//创建一个方法
        private StashMapper stashMapper;//调用接口并创建StashMapper类型的对象,这个类是Dao层的接口里的
            /**
         * 新增Stash
         * @param stashPo
         */
        public int insertStash(StashPO stashPo) {   //调用接口中的insertStash方法,
        //这个是方法名,方法体在StashMapper.xml里边定义了
           try{//实际写项目的时候每个方法体里边都应该写try和
              //TODO 后续应该在mybatis中加上返回值,确定是否插入成功(1成功,0失败)
              stashMapper.insertStash(stashPo);//用stashMapper.来调用它体内的方法
              return 1;
           }catch (NullPointerException e){//如果出错,终止try的运行,进入catch分支运行方法体
              log.error("有部分属性为空,{0}",e);
              return 0;
            }
        };
        /**
         * 查询Stash,返回我查询的值,成功返回查询的值,失败就不用返回了
         * @return selectStash()
         */
        public  StashPO selectStash() {//定义返回值类型为StashPO,调用接口中的selectStash方法
            StashPO stashpo = new StashPO();//新建局部变量,为了承接selectStash方法的返回值(结果)
            try {
              stashpo = stashMapper.selectStash();//承接selectStash方法的返回值(结果)
            }catch (Exception e) {
                log.error("有部分属性查询不到,{0}", e); //有部分属性查询不到nullException
            }
            return stashpo;
        };
        /**
         * 更新Stash,成功返回1,失败返回0
         * @param stashPo
         * @return
         */
        public int updateStash(StashPO stashPo){
                try{
                    stashMapper.updateStash(stashPo);
                    return 1;
                }catch (Exception e) {
                    log.error("有部分属性无法更新,{0}", e);
                    return 0;
                }
        };
        /**
         * 删除Stash,成功返回1,失败返回0
         * @param cid
         * @return
         */
        public int deleteStash(String cid) {
            try{
                stashMapper.deleteStash(cid);
                return 1;
            }catch (Exception e) {
                log.error("有部分属性无法删除,{0}", e);
                return 0;
            }
        };
    }
    

    controller层

    我的理解,controller层,是用来处理页面和services层的逻辑关系的一个层,下面由代码举例:

    package com.example.sfdeliverysystem.controller;
    import com.example.sfdeliverysystem.dao.mybatis.StashMapper;
    import com.example.sfdeliverysystem.model.StashPO;
    import com.example.sfdeliverysystem.service.StashService;
    import lombok.extern.slf4j.Slf4j;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.PathVariable;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    @Slf4j
    @RequestMapping("/StashPO")//将请求和处理请求的控制器方法关联起来,建立映射关系,里边写实体类名
    @RestController
    //定义一个StashController类,里边写对应的增删改查的方法,方法体为调用services层中的方法
    public class StashController {
        private StashService stashService;//新建两个局部变量,还是主要为了调用和承接返回值
        private int i;
    @GetMapping("/{insert}")//绿色的是在url中为了让其可以被识别的路径关键字,自己设置的
    public int insertStash(StashPO stashPo){//依旧是调用接口中的方法然后承接其返回值,然后输出本身方法体的返回值
        i = stashService.insertStash(stashPo);
        return i;
        };
        @GetMapping("/{select}")
        public  StashPO selectStash() {
            StashPO stashpo = new StashPO();
            try{
               stashpo = stashService.selectStash();
            }catch (Exception e) {
                log.error("有部分属性查询不到,{0}", e);
            }
            return stashpo;
        };
        @GetMapping("/{update}")
        public int updateStash(StashPO stashPo){
            i = stashService.updateStash(stashPo);
                return i;
            }
        @GetMapping("/{delete}")
        public int deleteStash(String cid) {
            i = stashService.deleteStash(cid);
                return i;
        };
    };
    
  • 相关阅读:
    超详细的Python安装和环境搭建教程
    数据大屏方案 : 实现数据可视化的关键一环_光点科技
    (高阶) Redis 7 第16讲 预热/雪崩/击穿/穿透 缓存篇
    Robust Real-Time Face Detection
    可视化拖拽组件库一些技术要点原理分析(四)
    视频分析【video analytics】的项目的关键因素 -- 如何选择合适的摄像头,存储设备,以及AI推理硬件?
    快速理清Paxos、Zab、Raft协议
    spring框架
    nacos的心跳机制详解
    数字化转型领航者:佑美科技塑造智能健康新生态
  • 原文地址:https://blog.csdn.net/weixin_40390585/article/details/139336622