springboot快速写增删改查接口

springboot快速写接口

  • 1.建立项目,初步测试接口
    • 1. 建proj形式
    • 2. 基础包
    • 2. 基础依赖
    • 3. 配置数据库
    • 4.用restcontroller和postmapping来写接口
    • 5. 如何使用数据库进行增删改查
  • 2. 写一个简单的增删改查
    • 2.1 查询
    • 报错汇总:
      • mybatis的application.yml配置错误
      • insert接口无法构造User函数,报500错误
    • 知识补充:
      • @Transactional
      • @PathVariable
      • @RequestBody

1.建立项目,初步测试接口

1. 建proj形式

  • name会变成文件夹的名字,相当于你的项目名称
    prinb

2. 基础包

在这里插入图片描述

2. 基础依赖

在这里插入图片描述

3. 配置数据库

这里要打开mysql,并且创建数据库
方法:

  1. 安装好数据库,改好账号密码
  2. 用navicat来建表和账号
  3. 配置properties.yml文件即可

4.用restcontroller和postmapping来写接口

1.建文件夹
2.建controller类
3.添加两个注解
4.返回需要的数据–string,或者直接是一个类也行
– 4.1 类可以另写一个文件,并用alt+insert的形式设置构造函数,和getter,setter
在这里插入图片描述

效果:
在这里插入图片描述

5. 如何使用数据库进行增删改查

在这里插入图片描述
注释:

  • 实体类为entity,在前后端JSON格式传输的时候会实例化实体
  • 增删改查叫做mapper,写mapper接口和xml文件就是将接口的这个函数和SQL查询语句对应起来
  • service是用于写一些计算相关的业务逻辑
  • controller就是api接口,用requestmapping注解来暴露接口,然后然会给接口需要的东西

– 创建表
CREATE TABLE user (
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
age INT NOT NULL,
email VARCHAR(255) NOT NULL,
PRIMARY KEY (id)
);

– 插入数据
INSERT INTO user (name, age, email) VALUES
(‘张三’, 20, ‘zhangsan@example.com’),
(‘李四’, 21, ‘lisi@example.com’),
(‘王五’, 22, ‘wangwu@example.com’),
(‘赵六’, 23, ‘zhaoliu@example.com’),
(‘孙七’, 24, ‘sunqi@example.com’),
(‘周八’, 25, ‘zhouba@example.com’),
(‘吴九’, 26, ‘wujiu@example.com’),
(‘郑十’, 27, ‘zhengshi@example.com’),
(‘陈十一’, 28, ‘chenshiyi@example.com’);

2. 写一个简单的增删改查

2.1 查询

  • 按照1.5的步骤来
  1. 建立实体类User,并且给出constructor,getter,setter

报错汇总:

mybatis的application.yml配置错误

在这里插入图片描述
写成了mapping/*.xml,系统会出现无法连接数据库的异常报错

insert接口无法构造User函数,报500错误

报错了:Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.http.converter.HttpMessageConversionException: Type definition error: [simple type, class com.learn1.demo.entity.User]; nested exception is com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of com.learn1.demo.entity.User (no Creators, like default constructor, exist): cannot deserialize from Object value (no delegate- or property-based Creator)
at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 2, column: 3]] with root cause

原因: User的无参constructor没有写。。。补上就行
在这里插入图片描述

知识补充:

@Transactional

用于声明事务的边界,它可以应用在方法级别或类级别。在 deleteUserById 方法中使用 @Transactional 有以下好处:

  • 事务管理: @Transactional 会将该方法包装在一个数据库事务中。如果在方法执行过程中发生了异常,事务将被回滚,从而保持数据库的一致性。

  • 避免不一致的状态: 当删除一个用户的同时还需要更新其他相关的信息时,你可能需要多个数据库操作,比如删除用户和删除相关的关联数据。使用 @Transactional 可以确保这些操作要么全部成功,要么全部失败。

  • 自动提交: 在 Spring Boot 中,默认情况下,每个 @Transactional 方法执行完成后都会提交事务。所以,当删除用户完成时,数据库的变更将被提交。

@PathVariable

是Spring框架中用于从URL模板中提取变量值的注解。它通常用于在控制器方法中获取由URI模板中的占位符表示的变量。

在Spring MVC中,我们可以使用@PathVariable注解将URL中的模板变量映射到方法的参数上。这使得我们能够在处理HTTP请求时访问URI模板中的动态变量。

@RequestBody

是Spring框架中用于从HTTP请求体中提取数据的注解。它通常用于处理POST请求,将请求体中的JSON、XML等格式的数据绑定到方法的参数上。

当你使用@RequestBody注解时,Spring会尝试将请求体的内容转换为指定的Java对象类型。这样你就可以直接在方法参数中获取请求体的内容而无需手动解析。

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

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

相关文章

【笔试常见编程题03】统计回文、连续最大和、不要二、把字符串转换成整数

1. 统计回文 “回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。花花非常喜欢这种拥有对称美的回文串,生日的时候她得到两个礼物分别是字符串A和字符串B。现在她非常好奇有没有办法将字符串B插入字符串A使产生的字符串…

新手也能轻松上手!10 款免费平面图设计软件推荐!

从事设计行业的工人或多或少会接触到平面图。例如,在建造新房、办公室、酒店等任何类型的建筑时,都需要使用平面图来保证项目的准确性。因此,掌握绘制平面图软件的技巧也非常重要。在保证效率的同时,结果的准确性也非常高。在本文…

【CMU-自主导航与规划】M-TARE planner 配置与运行

M-TARE docker M-TARE 源码 一、依赖 Docker, Docker Compose, NVIDIA Container Toolkit, Nvidia GPU Driver(需要至少2个,带Nvidia GPU) 1.1 Docker docker -v #查询版本1.2 Docker Compose docker compose version1.3 …

jrt运维命令改造

以前发布网站都是定死网站放置路径的,现在JRT想面向更广范围推广,所以就不能明确确定网站放置目录,为此需要改造一下jrt命令和sh来满足目录不确定情况和多个程序用不同管理命令的要求。 以前是写死的,现在改为调程序运行目录的sh…

Dubbo 3.x源码(16)—Dubbo服务发布导出源码(5)

基于Dubbo 3.1,详细介绍了Dubbo服务的发布与引用的源码。 此前我们学习了Dubbo 3.x源码(15)—Dubbo服务发布导出源码(4),也就是Dubbo远程服务导出export方法的上半部分,也就是doLocalExport源码,将会得到一个Exporter。 现在我们…

C++类和对象引入以及类的介绍使用

文章目录 一、面向过程和面向对象的初步认识二、类的引入2.2 类的引入 三、类的访问限定符及封装3.3 访问限定符3.4 【面试题】C中struct和class的区别3.5 类的两种定义方式 四、封装【面试题】面向对象的三大特性 五、类的作用域六、类的实例化七、类对象模型7.1 类对象的存储…

(Sping Xml方式整合第三方框架)学习Spring的第十天

Spring整合mybatis 1 . 导入Mybatis整合Spring的相关坐标 <dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>5.2.13.RELEASE</version></dependency><dependency><…

基于springboot网上图书商城源码和论文

在Internet高速发展的今天&#xff0c;我们生活的各个领域都涉及到计算机的应用&#xff0c;其中包括网上图书商城的网络应用&#xff0c;在外国网上图书商城已经是很普遍的方式&#xff0c;不过国内的管理网站可能还处于起步阶段。网上图书商城具有网上图书信息管理功能的选择…

新建VM虚拟机-安装centOS7-连接finalshell调试

原文 这里有问题 首先进入/etc/sysconfig/network-scripts/目录 cd /etc/sysconfig/network-scripts/ 然后编辑文件 ifcfg-ens33 vi ifcfg-ens33

探索数字经济:从基础到前沿的奇妙旅程

新一轮技术革命方兴未艾&#xff0c;特别是以人工智能、大数据、物联网等为代表的数字技术革命&#xff0c;催生了一系列新技术、新产业、新模式&#xff0c;深刻改变着世界经济面貌。数字经济已成为重组全球要素资源、重塑全球经济结构、改变全球竞争格局的关键力量。预估到20…

OpenCV 5 - 图像混合处理addWeighted()

图像混合 1 理论-线性混合操作 其中α的取值范围为0~1之间,表示图像的所占的权重 2 混合处理函数addWeighted() 3 代码示例 Mat src1, src2, dst;src1 = imread("./1.png");src2 = imread("./2.png");if (!src1.data && src2.empty()) //判断图片…

word文档怎么做成翻页电子书

随着科技的进步&#xff0c;电子书已成为越来越多人阅读的首选。翻页电子书以其独特的翻页效果和丰富的互动功能&#xff0c;更是受到了广大读者的喜爱。那么&#xff0c;如何将传统的Word文档制作成翻页电子书呢&#xff1f; 一、了解翻页电子书的特点 翻页电子书&#xff0c…

鸿蒙开发【分布式任务调度】解析

鸿蒙OS 分布式任务调度概述 在 HarmonyO S中&#xff0c;分布式任务调度平台对搭载 HarmonyOS 的多设备构筑的“超级虚拟终端”提供统一的组件管理能力&#xff0c;为应用定义统一的能力基线、接口形式、数据结构、服务描述语言&#xff0c;屏蔽硬件差异&#xff1b;支持远程启…

成功解决IndexError: index 0 is out of bounds for axis 1 with size 0.

成功解决IndexError: index 0 is out of bounds for axis 1 with size 0. &#x1f335;文章目录&#x1f335; &#x1f333;引言&#x1f333;&#x1f333;报错分析及解决方案&#x1f333;&#x1f333;参考文章&#x1f333;&#x1f333;结尾&#x1f333; &#x1f333;…

Codeforces Round 921 (Div. 2)补题

We Got Everything Covered!&#xff08;Problem - A - Codeforces&#xff09; 题目大意&#xff1a;要求找出一个长度最短的字符串&#xff0c;满足任意由前k个字母组成的长度为n的字符串都是它的子序列。输出字符串。 思路&#xff1a;这道题我本来想的很简单&#xff0c;…

仅使用 Python 创建的 Web 应用程序(前端版本)第10章_订单列表

本章我们将实现订单列表页面。 完成后的图像如下。 创建过程与之前相同,如下。 No分类内容1Model创建继承BaseDataModel的数据类Order、OrderDetail2Service创建一个 OrderAPIClient3Page定义PageId并创建继承自BasePage的页面类4Application将页面 ID 和页面类对添加到 Mult…

第五季特别篇:一夜杯、游戏之宴 2017.04.26

第五季特别篇&#xff1a;一夜杯、游戏之宴 2017.04.26 OVA 第1话&#xff1a;一夜酒杯 / 一夜杯OVA 第2话&#xff1a;游戏之宴 / 遊戯の宴 OVA 第1话&#xff1a;一夜酒杯 / 一夜杯 遭到独角妖袭击的妖怪夫妇日土和初菜被夏目所救&#xff0c;这对妖怪夫妇制作的酒杯&#xf…

【服务器APP】利用HBuilder X把网页打包成APP

目录 &#x1f33a;1. 概述 &#x1f33c;1.1 新建项目 &#x1f33c;1.2 基础配置 &#x1f33c;1.3 图标配置 &#x1f33c;1.4 启动界面配置 &#x1f33c;1.5 模块配置 &#x1f33c;1.6 打包成APP &#x1f33a;1. 概述 探讨如何将网页转化为APP&#xff0c;这似乎…

LeetCode 热题 100 | 矩阵

目录 1 73. 矩阵置零 2 54. 螺旋矩阵 3 48. 旋转图像 4 240. 搜索二维矩阵 II 菜鸟做题第二周&#xff0c;语言是 C 1 73. 矩阵置零 解题思路&#xff1a; 遍历矩阵&#xff0c;寻找等于 0 的元素&#xff0c;记录对应的行和列将被记录的行的元素全部置 0将被记录的…

SOME/IP 协议介绍(七)传输 CAN 和 FlexRay 帧

SOME/IP 不应仅用于传输 CAN 或 FlexRay 帧。但是&#xff0c;消息 ID 空间需要在两种用例之间进行协调。 传输 CAN/FlexRay 应使用完整的 SOME/IP 标头。 AUTOSAR Socket-Adapter 使用消息 ID 和长度来构建所需的内部 PDU&#xff0c;但不会查看其他字段。因此&#xff0c;必…
最新文章