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

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

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

相关文章

华东师范大学研究团队《Ecology Letters 》揭示植物如何改变其物候以响应全球变化

自工业革命以来,人类活动导致多种环境因子同时发生变化,包括气候变暖、降水模式改变、氮沉降增加和大气CO2升高。这些变化预计会影响植物生命周期事件的季节时序—植物物候(Nature Reviews Earth & Environment | 傅伯杰院士团队发文阐述…

基于java的CRM客户关系管理系统(二)

目录 第二章 相关技术介绍 2.1 后台介绍 2.1.1 B/S平台模式 2.1.2 MVC 2.1.3 Spring 2.1.4 Hibernate 2.1.5 Struts 2.2 前端介绍 2.2.1 JSP网页技术 2.3 开发工具 2.4 本章小结 前面内容请移步 基于java的CRM客户关系管理系统(二) 资源…

机器学习第四十一周周报 JTFT

文章目录 week41 JTFT摘要Abstract1. 题目2. Abstract3. 网络架构3.1 JTFT3.2 具有可学习频率的稀疏FD表示3.3 用于提取跨渠道依赖关系的低阶注意力层 4. 文献解读4.1 Introduction4.2 创新点4.3 实验过程 5. 结论小结参考文献 week41 JTFT 摘要 本周阅读了题为A Joint Time-…

【TIPs】 Visual Stadio 2019 中本地误使用“git的重置 - 删除更改 -- hard”后,如何恢复?

环境: VS 2019Windows10本地版本管理(非远程) 前言: git 在Visual Stadio 2019中集成了git的版本管理,在本地用来做版本管理,本来比较好用。 不过有一次,由于拿最初始的版本的时候&#xf…

fyne apptab布局

fyne apptab布局 AppTabs 容器允许用户在不同的内容面板之间切换。标签要么只是文本,要么是文本和一个图标。建议不要混合一些有图标的标签和一些没有图标的标签。 package mainimport ("fyne.io/fyne/v2/app""fyne.io/fyne/v2/container"//&…

广告变现是什么

广告变现是指媒体或平台通过向用户展示广告主的广告,从而获得收入的过程。 广告变现就像是一个店主,他需要有一个吸引人的店面,提供优质的内容和服务,然后在店里摆放一些别人的商品或服务,每当有客人看了或买了这…

Proxmox 虚拟环境下1Panel Linux 服务器运维管理面板的安装

简介 以前安装服务器管理面板用的都是宝塔,今天发现 1Panel Linux 服务器运维管理面板也很好,面板清晰整洁,使用的技术比较先进,所以我决定亲自安装一下看看效果就竟如何? 1Panel Linux 服务器运维管理面板是一个开源…

C语言 | Leetcode C语言题解之第125题验证回文串

题目&#xff1a; 题解&#xff1a; bool isalumn(char c) {return (c > a && c < z) || (c > A && c < Z) || (c > 0 && c < 9); }bool isPalindrome(char* s) {for (int left 0, right strlen(s) - 1; left < right; left, …

XDMA原理及其应用和发展

XDMA原理 XDMA的主要原理是通过直接访问主机内存&#xff0c;实现数据的快速传输。在传统的DMA&#xff08;Direct Memory Access&#xff09;技术中&#xff0c;数据传输需要经过CPU的干预&#xff0c;而XDMA可以绕过CPU&#xff0c;直接将数据从外设读取到主机内存或者从主机…

Java | Leetcode Java题解之第126题单词接龙II

题目&#xff1a; 题解&#xff1a; class Solution {public List<List<String>> findLadders(String beginWord, String endWord, List<String> wordList) {List<List<String>> res new ArrayList<>();// 因为需要快速判断扩展出的单词…

7-zip安装教程

一、简介 7-Zip 是一款开源的文件压缩软件&#xff0c;由 Igor Pavlov 开发。它具有高压缩比、支持多种格式、跨平台等特点。使用 C语言编写&#xff0c;其代码在 Github 上开源。 7-Zip的官网&#xff1a; 7-Zip 7-zip官方中文网站&#xff1a; 7-Zip 官方中文网站 7-Zip 的 G…

Java | Leetcode Java题解之第125题验证回文串

题目&#xff1a; 题解&#xff1a; class Solution {public boolean isPalindrome(String s) {int n s.length();int left 0, right n - 1;while (left < right) {while (left < right && !Character.isLetterOrDigit(s.charAt(left))) {left;}while (left …

Java筑基-集合[Set、Map、List、Stack、Queue]

这里写目录标题 一、Collection接口结构图二、Set集合1、常用方法 三、List集合1、List集合常用方法2、代码案例 四、Stack集合1、方法2、代码展示 五、Queue集合1、常用的方法2、代码展示 六、Map集合1、基本概念2、常用方法3、代码展示 一、Collection接口结构图 二、Set集合…

C语言中 printf函数格式化输出

一. 简介 本文来简单学习一下&#xff0c;C语言中printf函数格式化输出时&#xff0c;因为我们的粗心没有 将数据类型与格式化参数对应&#xff0c;而导致的一些问题。 二. C语言中printf函数的格式化输出 在C语言中&#xff0c;printf函数是用于格式化输出的函数&#xff0…

如何实现一个AI聊天功能

最近公司的网站上需要对接一个AI聊天功能&#xff0c;领导把这个任务分给了我&#xff0c;从最初的调研&#xff0c;学习&#xff0c;中间也踩过一些坑&#xff0c;碰到过问题&#xff0c;但最后对接成功&#xff0c;还是挺有成就感的&#xff0c;今天把这个历程和项目整理一下…

揭秘:为啥赚钱越来越难了?8大残酷真相!

当下&#xff0c;许多人都普遍感受到了一种前所未有的压力&#xff1a;赚钱似乎变得越来越难了。这一现象的背后&#xff0c;隐藏着多个层面的复杂原因。以下&#xff0c;我们将结合最新的数据和观察&#xff0c;从几个关键角度探讨这一现象的成因。 首先&#xff0c;全球经济…

flinksql 回撤流中主键发生变更的影响(group by中的值发生改变)

flinksql 回撤流中,主键发生变更的影响 1 什么是回撤流2 主键变更场景3 实践中发现的比较好的的实时数仓架构1 什么是回撤流 这篇文章主要谈论一个场景,简单来说: 首先我们来简单的说一下什么是回撤流,以及回撤流的底层原理,举个例子: 这个说的不是很清晰 ,其实倒数第…

Java学习19-List、set容器

目录 一.List&#xff1a; 1.List基本介绍&#xff1a; 2.List接口方法&#xff1a; 3.List的三种遍历方式&#xff1a; 4.ArrayList&#xff1a; &#xff08;1&#xff09;ArrayLis的基本介绍&#xff1a; &#xff08;2&#xff09;ArrayList底层结构和源码分析&…

就业班 第四阶段(docker) 2401--5.29 day3 Dockerfile+前后段项目若依ruoyi

通过Dockerfile创建镜像 Docker 提供了一种更便捷的方式&#xff0c;叫作 Dockerfile docker build命令用于根据给定的Dockerfile构建Docker镜像。docker build语法&#xff1a; # docker build [OPTIONS] <PATH | URL | ->1. 常用选项说明 --build-arg&#xff0c;设…

数学建模 —— 数学规划模型(5)

目录 一、数学规划 1.1 数学规划问题一般形式 二、常见规划模型 2.1 线性规划&#xff08;Linear Programming&#xff09; 2.1.1 定义 2.1.2 一般形式 2.1.3 标准形式 2.1.4 求解 2.2 整数规划&#xff08;Integer Programming&#xff09; 2.2.1 单目标规划 2.…