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.hqwc.cn/news/438221.html

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

相关文章

FPGA高端项目:Xilinx Zynq7020系列FPGA多路视频拼接 工程解决方案 提供6套工程源码和技术支持

目录 1、前言版本更新说明给读者的一封信FPGA就业高端项目培训计划免责声明 2、相关方案推荐我已有的FPGA视频拼接叠加融合方案本方案在Xilinx Kintex7 系列FPGA上的应用本方案在Xilinx Artix7 系列FPGA上的应用 3、设计思路框架视频源选择ov5640 i2c配置及采集动态彩条多路视频…

Mysql运维篇(三) MySQL备份与恢复

一路走来,所有遇到的人,帮助过我的、伤害过我的都是朋友,没有一个是敌人。如有侵权,请留言,我及时删除! 一、物理备份与逻辑备份 1、物理备份:备份数据文件,转储数据库物理文件到某…

两个字符串间的最短路径问题 - 华为OD统一考试

OD统一考试(C卷) 分值: 200分 题解: Java / Python / C 题目描述 给定两个字符串,分别为字符串A与字符串B。 例如A字符串为ABCABBA,B字符串为CBABAC可以得到下图m*n的二维数组,定义原点为(0, …

地址簿功能代码

目录标题 1 需求分析和设计1.1 产品原型1.2 接口设计1.3 表设计 2 模板代码2.1 entity 实体对象2.2 Mapper层2.3 Service层2.4 Controller层 1 需求分析和设计 1.1 产品原型 地址簿,指的是消费者用户的地址信息,用户登录成功后可以维护自己的地址信息。…

上海共享办公室的现状与未来

共享办公室,又称联合办公、众创空间、孵化器等,是一种将空闲的办公空间出租给不同的企业或个人,提供灵活的租期、价格和服务的新型办公模式。共享办公室的出现,满足了新兴企业和自由职业者对于低成本、高效率、多元化的办公需求&a…

阿里十年 “帕鲁” 手把手带你学习 乐观锁和悲观锁

阿里十年 “帕鲁” 手把手带你学习 乐观锁和悲观锁 文章目录 阿里十年 “帕鲁” 手把手带你学习 乐观锁和悲观锁什么是悲观锁?什么是乐观锁?如何实现乐观锁?版本号机制CAS 算法 乐观锁存在哪些问题?ABA 问题循环时间长开销大只能保…

用C#实现最小二乘法(用OxyPlot绘图)

最小二乘法介绍✨ 最小二乘法(Least Squares Method)是一种常见的数学优化技术,广泛应用于数据拟合、回归分析和参数估计等领域。其目标是通过最小化残差平方和来找到一组参数,使得模型预测值与观测值之间的差异最小化。 最小二…

【node】Node.js的常用内置模块:

文章目录 一、os模块:【1】常用的OS模块方法包括:【2】案例: 二、path模块:【1】常用的path模块方法包括:【2】案例: 三、url模块:【1】常用的url模块方法包括:【2】案例&#xff1a…

Springboot+Netty搭建基于TCP协议的服务端

文章目录 概要pom依赖Netty的server服务端类Netty通道初始化I/O数据读写处理测试发送消息 并 接收服务端回复异步启动Netty运行截图 概要 Netty是业界最流行的nio框架之一,它具有功能强大、性能优异、可定制性和可扩展性的优点 Netty的优点: 1.API使用简…

超值福利,全是独家特制版软件,功能超凡且完全免费

闲话休提,直接为您呈现四款神仙级别的软件。 1、我的ABC软件工具箱 这款小巧而强大的批量处理办公助手——我的ABC软件工具箱,不仅界面清爽、无弹窗广告,更重要的是,它完全免费!这款工具箱将成为您高效办公的得力助手…

【前端web入门第二天】02 表单-input标签-单选框-多选框

表单 文章目录: 1.input标签基本使用 1.1 input标签占位文本1.2 单选框 radio 1.3 多选框 checkbox 作用:收集用户信息。 使用场景: 登录页面注册页面搜索区域 1.input标签基本使用 input标签type属性值不同&#xff0c;则功能不同。 <input type"..."&g…

媒体邀约:怎么吸引总体目标受众?

新闻媒体影响力日益扩大。不论是公司、机构还是其他&#xff0c;都希望能够通过新闻媒体的曝光来吸引更多总体目标受众。要想真正吸引住总体目标受众并非易事&#xff0c;需要一定的方案和方法。下面我们就深入探究媒体邀约推广的真相&#xff0c;共享怎么吸引总体目标受众的方…