自用:在使用SpringBoot做学生信息管理系统时遇到的问题

1、在做完查询测试时,一直报出404找不到错误,原因是没有为各个层的实现类添加注解
2、改完之后发现测试没有数据,是因为我写的返回值类型为空,应该返回一个List< Student >
3、我没有想到要写Result实体类,因为不理解它存在的意义:

它是一种常见的用于封装接口响应结果的实体类,能够统一响应格式:定义code(响应码)、msg(响应信息)和data(返回数据)三个属性;便于前端处理。
不写这个类是可行的,比如直接返回业务数据本身,或者返回简单的字符串等。但这样会导致接口响应格式不统一,前端处理逻辑复杂,不利于项目的长期维护和迭代。

package com.example.stusystem.pojo;import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;@Data
@NoArgsConstructor
@AllArgsConstructor
public class Result {private Integer code;private String msg;private Object data;public static Result success(){return new Result(1,"success",null);}public static Result success(Object data){return new Result(1,"success",data);}public static Result error(String msg){return new Result(0,msg,null);}
}

service层和dao层返回List,controller层把List装进success参数中返回。
4、在写前端时methods写成了method
5、axios.get(’ ')里面是单引号
6、循环里插值表达式是两个花括号

<tr v-for="Student in Students":key="Student.id"><td>{{Student.id}}</td><td>{{Student.name}}</td><td>{{Student.sex}}</td><td>{{Student.age}}</td>
</tr>

7、先写后端,用postman测试后端接口没问题后去写前端,不管其他层返回什么,控制层总返回一个相应结果Result。
8、
在这里插入图片描述
9、在data中添加newStu的属性

data: {newStu: {name: "",age: null, //初始化为null或0等合适的值sex: "", //1、普通属性添加address: {//2、对象嵌套添加province: "",city: "",district: ""},hobbies: [] //3、数组属性添加,初始化为空数组,之后可以通过 this.newStu.hobbies.push('阅读') 等方式往数组里添加元素。},Students: []
}

10、删除或者按照id查找一条数据时,注意两点:
路径变量要加花括号、方法参数前面要加注解。

@DeleteMapping("/dept/{id}")
@Override
public Result delOneController(@PathVariable Integer id) {//把路径变量绑定到方法参数上,可以将路径变量动态获取的值传给方法的参数。deptServiceImpl.delOneService(id);return Result.success();
}

11、这个按钮也要被< td >包起来,不然他不在表格里面

<td><button @click="deleteOne">删除</button>
</td>

并且!!!里面要传id不然点删除按钮没反应啊,传的是当前循环的Student的id

<button @click="deleteOne(Student.id)">删除</button>

12、在做删除的前端时,要用反引号,并且使用${id}

deleteDept(id){if(confirm("确认删除该条记录吗?"){axios.delete(`http://localhost:8080/dept/${id}`).then(()=>this.loadDepts()//重新加载)}
}

13、在更新时当然要先写获取一条数据的接口方法,要不然你怎么改,所以也更容易理解查询一条返回Student对象,查询所有列表返回List< Student >。
14、更新是最麻烦的,在更新之前需要写一个查询一条信息的后端接口,思路如下:

先通过get获取原来的数据,设置新值创建新的对象,然后通过put方法,把新对象作为参数传进去,实现更新。

15、拼写错误!!!
Vue中是methods,不是method,写错了会导致没反应
response和data以及update这些都是常拼错的

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SQLite + Redis = Redka

Redka 是一个基于 SQLite 实现的 Redis 替代产品&#xff0c;实现了 Redis 的核心功能&#xff0c;并且完全兼容 Redis API。它可以用于轻量级缓存、嵌入式系统、快速原型开发以及需要事务 ACID 特性的键值操作等场景。 功能特性 Redka 的主要特点包括&#xff1a; 使用 SQLi…

202529 | RocketMQ 简介 + 安装 + 集群搭建 + 消费模式 + 消费者组

RocketMQ简介 RocketMQ 简介 Apache RocketMQ 是一款开源的 分布式消息中间件&#xff08;Message Queue, MQ&#xff09;&#xff0c;由阿里巴巴团队研发并捐赠给 Apache 基金会&#xff0c;现已成为顶级项目。它专为 高吞吐、低延迟、高可靠 的分布式场景设计&#xff0c;广…

Go语言--语法基础4--基本数据类型--整数类型

整型是所有编程语言里最基础的数据类型。 Go 语言支持如下所示的这些整型类型。 需要注意的是&#xff0c; int 和 int32 在 Go 语言里被认为是两种不同的类型&#xff0c;编译器也不会帮你自动做类型转换&#xff0c; 比如以下的例子会有编译错误&#xff1a; var value2 in…

竞拍商城:电商创新的博弈场与未来趋势

竞拍商城&#xff1a;电商创新的博弈场与未来趋势 在传统电商趋于同质化的今天&#xff0c;竞拍商城凭借其独特的交易机制和用户激励模式&#xff0c;成为电商领域的新宠。通过结合拍卖的博弈属性与电商的便捷性&#xff0c;竞拍商城不仅重塑了消费体验&#xff0c;更催生了全…

Linux : 多线程互斥

目录 一 前言 二 线程互斥 三 Mutex互斥量 1. 定义一个锁&#xff08;造锁&#xff09; 2. 初始化锁 3. 上锁 4. 解锁 5. 摧毁锁 四 锁的使用 五 锁的宏初始化 六 锁的原理 1.如何看待锁&#xff1f; 2. 如何理解加锁和解锁的本质 七 c封装互斥锁 八 可重入…

论文阅读笔记——Reactive Diffusion Policy

RDP 论文 通过 AR 提供实时触觉/力反馈&#xff1b;慢速扩散策略&#xff0c;用于预测低频潜在空间中的高层动作分块&#xff1b;快速非对称分词器实现闭环反馈控制。 ACT、 π 0 \pi_0 π0​ 采取了动作分块&#xff0c;在动作分块执行期间处于开环状态&#xff0c;无法及时响…

swagger 注释说明

一、接口注释核心字段 在 Go 的路由处理函数&#xff08;Handler&#xff09;上方添加注释&#xff0c;支持以下常用注解&#xff1a; 注解名称用途说明示例格式Summary接口简要描述Summary 创建用户Description接口详细说明Description 通过用户名和邮箱创建新用户Tags接口分…

STM32 HAL库 OLED驱动实现

一、概述 1.1 OLED 显示屏简介 OLED&#xff08;Organic Light - Emitting Diode&#xff09;即有机发光二极管&#xff0c;与传统的 LCD 显示屏相比&#xff0c;OLED 具有自发光、视角广、响应速度快、对比度高、功耗低等优点。在嵌入式系统中&#xff0c;OLED 显示屏常被用…

Web开发-JavaEE应用动态接口代理原生反序列化危险Invoke重写方法利用链

知识点&#xff1a; 1、安全开发-JavaEE-动态代理&序列化&反序列化 2、安全开发-JavaEE-readObject&toString方法 一、演示案例-WEB开发-JavaEE-动态代理 动态代理 代理模式Java当中最常用的设计模式之一。其特征是代理类与委托类有同样的接口&#xff0c;代理类…

K8s是常用命令和解释

K8s高频命令 获取资源信息&#xff0c;如获取 Pod、Service、Deployment等资源状态信息 kubectl get创建资源如创建Pod、Service、Deployment等资源 kubectl create删除资源&#xff0c;如删除Pod、Service、Deployment等资源 kubectl delete 应用配置文件&#xff0c;如引用D…

【模态分解】EMD-经验模态分解

算法配置页面&#xff0c;也可以一键导出结果数据 报表自定义绘制 获取和下载【PHM学习软件PHM源码】的方式 获取方式&#xff1a;Docshttps://jcn362s9p4t8.feishu.cn/wiki/A0NXwPxY3ie1cGkOy08cru6vnvc

TDengine 语言连接器(Go)

简介 driver-go 是 TDengine 的官方 Go 语言连接器&#xff0c;实现了 Go 语言 database/sql 包的接口。Go 开发人员可以通过它开发存取 TDengine 集群数据的应用软件。 Go 版本兼容性 支持 Go 1.14 及以上版本。 支持的平台 原生连接支持的平台和 TDengine 客户端驱动支持…

链接世界:计算机网络的核心与前沿

计算机网络引言 在数字化时代&#xff0c;计算机网络已经成为我们日常生活和工作中不可或缺的基础设施。从简单的局域网&#xff08;LAN&#xff09;到全球互联网&#xff0c;计算机网络将数以亿计的设备连接在一起&#xff0c;推动了信息交换、资源共享以及全球化的进程。 什…

AI agents系列之全面介绍

随着大型语言模型(LLMs)的出现,人工智能(AI)取得了巨大的飞跃。这些强大的系统彻底改变了自然语言处理,但当它们与代理能力结合时,才真正释放出潜力——能够自主地推理、规划和行动。这就是LLM代理大显身手的地方,它们代表了我们与AI交互以及利用AI的方式的范式转变。 …

如何使用AI辅助开发CSS3 - 通义灵码功能全解析

一、引言 CSS3 作为最新的 CSS 标准&#xff0c;引入了众多新特性&#xff0c;如弹性布局、网格布局等&#xff0c;极大地丰富了网页样式的设计能力。然而&#xff0c;CSS3 的样式规则繁多&#xff0c;记忆所有规则对于开发者来说几乎是不可能的任务。在实际开发中&#xff0c…

复刻系列-星穹铁道 3.2 版本先行展示页

复刻星穹铁道 3.2 版本先行展示页 0. 视频 手搓&#xff5e;星穹铁道&#xff5e;展示页&#xff5e;&#xff5e;&#xff5e; 1. 基本信息 作者: 啊是特嗷桃系列: 复刻系列官方的网站: 《崩坏&#xff1a;星穹铁道》3.2版本「走过安眠地的花丛」专题展示页现已上线复刻的网…

爬虫:IP代理

什么是代理 代理服务器 代理服务器的作用 就是用来转发请求和响应 在爬虫中为何需要使用代理&#xff1f; 有些时候&#xff0c;需要对网站服务器发起高频的请求&#xff0c;网站的服务器会检测到这样的异常现象&#xff0c;则会讲请求对应机器的ip地址加入黑名单&#xff…

协程的原生挂起与恢复机制

目录 &#x1f50d; 一、从开发者视角看协程挂起与恢复 &#x1f9e0; 二、协程挂起和恢复的机制原理&#xff1a;核心关键词 ✅ suspend 函数 ≠ 普通函数 ✅ Continuation&#xff08;协程的控制器&#xff09; &#x1f527; 三、编译器做了什么&#xff1f;&#xff0…

c++11--std::forwaord--完美转发

std::forword的作用 完美转发的核心目的是保持参数的原始类型&#xff08;包括const/volatile限定符和左值/右值性质&#xff09;不变地传递给其他函数。 为什么需要完美转发 在没有完美转发之前&#xff0c;我们面临以下问题&#xff1a; 模板参数传递中的值类别丢失 当参数…

Linux安装开源版MQTT Broker——EMQX服务器环境从零到一的详细搭建教程

零、EMQX各个版本的区别 EMQX各个版本的功能对比详情https://docs.emqx.com/zh/emqx/latest/getting-started/feature-comparison.html