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;};
};
相关文章:
services层和controller层
services层 我的理解,services层是编写逻辑代码语句最多的一个层,非常重要,在实际的项目中,负责调用Dao层中的mybatis,在我的项目中它调用的是这两个文件 举例代码如下 package com.example.sfdeliverysystem.servic…...
Pycharm编辑器下自定义模块导入报错:no module named问题
相信很多使用pycharm 社区版编写python 程序的初学者都会遇到这样一个看似简单但是一时半刻找不到解决头绪的问题: 在同个目录下导入自己编写的模块到主程序的过程中,直接import的时候会报错:ModuleNotFoundError。 通过各种方法尝试以后还是…...
C#使用GDI对一个矩形进行任意角度旋转
C#对一个矩形进行旋转GDI绘图,可以指定任意角度进行旋转 我们可以认为一张图片Image,本质就是一个矩形Rectangle,旋转矩形也就是旋转图片 在画图密封类 System.Drawing.Graphics中, 矩形旋转的两个关键方法 //设置旋转的中心点 public v…...
打印机的ip不同且连不上
打印机的ip不同且连不上 1.问题分析2.修改网段3.验证网络 1.问题分析 主要是打印机的网段和电脑不在同一个网段 2.修改网段 3.验证网络...
关于linux程序的查看、前台运行、后台运行、杀死的管理操作。
前言 在Linux中, 程序(program)是放在磁盘上的程序,是不会执行的。 进程(process)是程序被触发,从而加载到内存中的,会被CPU随机执行。 Linux中,有非常多的进程在实时运…...
STM32作业设计
目录 STM32作业设计 STM32作业实现(一)串口通信 STM32作业实现(二)串口控制led STM32作业实现(三)串口控制有源蜂鸣器 STM32作业实现(四)光敏传感器 STM32作业实现(五)温湿度传感器dht11 STM32作业实现(六)闪存保存数据 STM32作业实现(七)OLED显示数据 STM32作业实现(八)触摸按…...
PHPSTOM配置Laradock,xdebug,phpunit
原理图: 片面理解: phpstorm启用一个9000端口,这个端口用来接收到信息后,启用xdebug功能。服务器端(docker), 当客户端访问laravel项目域名后, 并读取xdebug.ini的配置, 把调试的请求数据, 向配置里面的端口发送消息, 配置里面的端…...
使用Java进行数据分析和处理:应用在实际业务场景中的技术
在当今数据驱动的时代,数据分析和处理已经成为各行各业中不可或缺的一部分。Java作为一种广泛应用于企业级开发的编程语言,也在数据领域展现出了强大的能力。本文将探讨如何使用Java进行数据分析和处理,以及在实际业务场景中应用的技术。 ##…...
C++中的List
摘要 C 标准库中的 std::list 是一种双向链表容器,它允许在常数时间内进行插入和删除操作,每个元素包含一个指向前一个和后一个元素的指针。这给我们开发提供了高效的插入和删除操作。 引入头文件 要使用 std::list,需要包含头文件 <li…...
go map 如何比较两个 map 相等
go map 如何比较两个 map 相等 都为 nil非空、长度相等,指向同一个 map 实体对象相应的 key 指向的 value 相等 直接将使用 map1 map2 是错误的。这种写法只能比较 map 是否为 nil。因此只能是遍历map 的每个元素,比较元素是否都是深度相等。...
牛客网刷题 | BC108 反斜线形图案
目前主要分为三个专栏,后续还会添加: 专栏如下: C语言刷题解析 C语言系列文章 我的成长经历 感谢阅读! 初来乍到,如有错误请指出,感谢! 描述 KiKi学习了循环&am…...
数据的表示和运算
目录 一.各进制间的相互转换 1.各进制转化为10进制 2.二进制和八进制,十六进制之间地相互转化 3.十进制转换为其他进制 二.BCD码(Binary-Coded Decimal,用二进制编码的十进制) 1.8421码 2.余3码 3.2421码 三.无符号整数 …...
【爬虫工具】油管视频批量采集软件
一、背景介绍 1.1 爬取目标 我用Python独立开发了一款爬虫软件,作用是:通过搜索关键词采集ytb的搜索结果,包含14个关键字段:关键词,页码,视频标题,视频id,视频链接,发布时间,视频时长,频道名称,频道id,频道链接,播放数,点赞数,评…...
【LeetCode刷题】二分查找:寻找旋转排序数组中的最小值、点名
【LeetCode刷题】Day 14 题目1:153.寻找旋转排序数组中的最小值思路分析:思路1:二分查找:以A为参照思路2:二分查找,以D为参照 题目2:LCR 173.点名思路分析:思路1:遍历查找…...
使用python绘制小提琴图
使用python绘制小提琴图 小提琴图效果代码 小提琴图 小提琴图(Violin Plot)是一种结合了箱线图和核密度估计图的图形,用于显示数据分布的情况。它不仅展示了数据的四分位数、最大值和最小值,还通过密度曲线展示了数据的分布形状。…...
【C++】6-7 你好,输出的格式控制(三角形)
6-7 你好,输出的格式控制(三角形) 分数 10 全屏浏览 切换布局 作者 向训文 单位 惠州学院 完善程序:输入行数rows(大于0),第一行输出rows个*,接下来每行的*个数减1,直…...
力扣每日一题 6/1
2928.给小朋友们分糖果[简单] 题目: 给你两个正整数 n 和 limit 。 请你将 n 颗糖果分给 3 位小朋友,确保没有任何小朋友得到超过 limit 颗糖果,请你返回满足此条件下的 总方案数 。 示例 1: 输入:n 5, limit 2 …...
决定短视频打开率的要素:成都鼎茂宏升文化传媒公司
在当下这个短视频盛行的时代,无论是个人创作者还是企业品牌,都希望通过短视频平台获得更多的曝光和关注。然而,如何让自己的短视频在众多内容中脱颖而出,吸引用户的点击和观看,成为了摆在我们面前的重要问题。成都…...
解决通过包管理器下载 Sharp 时遇到的二进制文件下载问题
sharp 是一个流行的 Node.js 库,用于高性能的图片处理。它依赖于预构建的 libvips 二进制文件,这些文件通常是从官方仓库下载的。 但在某些地区的网络环境下,直接下载可能会因为网络限制而失败。 通过在命令行中分别执行以下两行内容即可&a…...
反序输出c++
题目描述 输入n个数,要求程序按输入时的逆序把这n个数打印出来,已知整数不超过100个。也就是说,按输入相反顺序打印这n个数。 输入 输入一行共有n个数,每个数之间用空格隔开。 输出 如题要求:一行,共有n个数&…...
未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?
编辑:陈萍萍的公主一点人工一点智能 未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战,在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...
Java如何权衡是使用无序的数组还是有序的数组
在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...
mongodb源码分析session执行handleRequest命令find过程
mongo/transport/service_state_machine.cpp已经分析startSession创建ASIOSession过程,并且验证connection是否超过限制ASIOSession和connection是循环接受客户端命令,把数据流转换成Message,状态转变流程是:State::Created 》 St…...
Objective-C常用命名规范总结
【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名(Class Name)2.协议名(Protocol Name)3.方法名(Method Name)4.属性名(Property Name)5.局部变量/实例变量(Local / Instance Variables&…...
spring:实例工厂方法获取bean
spring处理使用静态工厂方法获取bean实例,也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下: 定义实例工厂类(Java代码),定义实例工厂(xml),定义调用实例工厂ÿ…...
【开发技术】.Net使用FFmpeg视频特定帧上绘制内容
目录 一、目的 二、解决方案 2.1 什么是FFmpeg 2.2 FFmpeg主要功能 2.3 使用Xabe.FFmpeg调用FFmpeg功能 2.4 使用 FFmpeg 的 drawbox 滤镜来绘制 ROI 三、总结 一、目的 当前市场上有很多目标检测智能识别的相关算法,当前调用一个医疗行业的AI识别算法后返回…...
企业如何增强终端安全?
在数字化转型加速的今天,企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机,到工厂里的物联网设备、智能传感器,这些终端构成了企业与外部世界连接的 “神经末梢”。然而,随着远程办公的常态化和设备接入的爆炸式…...
微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据
微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据 Power Query 具有大量专门帮助您清理和准备数据以供分析的功能。 您将了解如何简化复杂模型、更改数据类型、重命名对象和透视数据。 您还将了解如何分析列,以便知晓哪些列包含有价值的数据,…...
初探Service服务发现机制
1.Service简介 Service是将运行在一组Pod上的应用程序发布为网络服务的抽象方法。 主要功能:服务发现和负载均衡。 Service类型的包括ClusterIP类型、NodePort类型、LoadBalancer类型、ExternalName类型 2.Endpoints简介 Endpoints是一种Kubernetes资源…...
push [特殊字符] present
push 🆚 present 前言present和dismiss特点代码演示 push和pop特点代码演示 前言 在 iOS 开发中,push 和 present 是两种不同的视图控制器切换方式,它们有着显著的区别。 present和dismiss 特点 在当前控制器上方新建视图层级需要手动调用…...
