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;
    };
};

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-06-07 00:28:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-07 00:28:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-07 00:28:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-07 00:28:02       20 阅读

热门阅读

  1. Emacs Verilog Mode 简单使用指南

    2024-06-07 00:28:02       10 阅读
  2. 【Qt快速入门(一)】- Qt简介

    2024-06-07 00:28:02       9 阅读
  3. js平滑滚动元素使其可见

    2024-06-07 00:28:02       12 阅读
  4. C++在构造函数中使用new

    2024-06-07 00:28:02       9 阅读
  5. zs6d配置-2

    2024-06-07 00:28:02       8 阅读
  6. 7-14 字节序(Endianness)---PTA实验C++

    2024-06-07 00:28:02       8 阅读
  7. 自然语言处理中的BERT模型深度剖析

    2024-06-07 00:28:02       7 阅读
  8. C++day3

    C++day3

    2024-06-07 00:28:02      8 阅读
  9. 用增之Google GA4F

    2024-06-07 00:28:02       8 阅读
  10. 前端经验:导出表格为excel并设置样式

    2024-06-07 00:28:02       9 阅读
  11. 维纳运动的概念

    2024-06-07 00:28:02       9 阅读
  12. 后端开发面经系列 -- 同程旅行C++一面

    2024-06-07 00:28:02       9 阅读
  13. 力扣 383题 赎金信 记录

    2024-06-07 00:28:02       8 阅读
  14. 深度学习和计算机视觉中的backbone

    2024-06-07 00:28:02       10 阅读