SpringBoot实战0-5

接口文档:通俗的讲,接口文档能告诉开发者接口能返回的数据,以及为了获取这些数据,开发者

需要输入什么样的数据,请求哪个接口(即规范)

为什么使用接口文档:

1、项目开发过程中前后端工程师有一个统一的文件进行沟通交流开发

2、项目维护中或者项目人员更迭,方便后期人员查看、维护

3、测试人员验证检查接口是否正确

环境搭建:

1.准备数据库(big_event)

2.创建SpringBoot工程,引入依赖(web、mybatis、mysql驱动、lombok)

3.创建包结构,准备实体类

注册:

1.Usercontroller

​
package com.rzl.controller;
import com.rzl.pojo.Result;
import com.rzl.pojo.User;
import com.rzl.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/user")
public class UserController {@Autowiredprivate UserService userService;@PostMapping("/register")public Result register(String username, String password) {//查询对象User u = userService.findByUserName(username);if (u == null) {//没有占用//注册userService.register(username, password);return Result.success();} else {//占用return Result.error("用户名已被占用");}}
}​

2.User实体类

package com.rzl.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;import java.time.LocalDateTime;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {private Integer id;//主键IDprivate String username;//用户名private String password;//密码private String nickname;//昵称private String email;//邮箱private String userPic;//用户头像地址private LocalDateTime createTime;//创建时间private LocalDateTime updateTime;//更新时间
}

3.UserService接口

package com.rzl.service;
import com.rzl.pojo.User;
public interface UserService {//根据用户名查询用户User findByUserName(String username);//注册void register(String username, String password);
}

4.UserServiceImpl实现类

package com.rzl.service.impl;
import com.rzl.mapper.UserMapper;
import com.rzl.pojo.User;
import com.rzl.service.UserService;
import com.rzl.utils.Md5Util;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class UserServiceImpl implements UserService {@Autowiredprivate UserMapper userMapper;@Overridepublic User findByUserName(String username) {User u = userMapper.findByName(username);return u;}@Overridepublic void register(String username, String password) {//密码加密String md5String = Md5Util.getMD5String(password);//添加userMapper.add(username,md5String);}
}

5.UserMapper接口

package com.rzl.mapper;
import com.rzl.pojo.User;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
@Mapper
public interface UserMapper {//根据用户名查询用户@Select("select *from user where username = #{username}")User findByName(String username);//添加@Insert("insert into user(username,password,create_time,update_time)" +" values(#{username},#{md5String},now(),now())")void add(String username, String md5String);
}

6.数据库

-- 创建数据库
create database big_event;-- 使用数据库
use big_event;用户表
create table user (id int unsigned primary key auto_increment comment 'ID',username varchar(20) not null unique comment '用户名',password varchar(32)  comment '密码',nickname varchar(10)  default '' comment '昵称',email varchar(128) default '' comment '邮箱',user_pic varchar(128) default '' comment '头像',create_time datetime not null comment '创建时间',update_time datetime not null comment '修改时间'
) comment '用户表';

7.使用postman,可得结果

登录:

Usercontroller

@PostMapping("/login")public Result<String> login(@Pattern(regexp = "^\\S{5,16}$") String username, @Pattern(regexp = "^\\S{5,16}$")String password) {// 根据用户名查询用户User loginUser = userService.findByUserName(username);//判断该用户是否存在if (loginUser == null) {return Result.error("用户名错误");}//判断密码是否正确     loginUser对象中的password是密文if (Md5Util.getMD5String(password).equals(loginUser.getPassword())) {//登陆成功return Result.success("jwt token令牌..");}return Result.error("密码错误");}

使用postman

登录成功:

用户名错误:

密码错误:

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

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

相关文章

二、SpringBoot-REST开发

rest开发&#xff08;表现形式转换&#xff09;&#xff1a; 1、优点&#xff1a;隐藏访问资源的行为&#xff0c;无法通过地址得知对资源是何种操作&#xff0c;书写简化 2、GET查询 POST 新增/保存 PUT&#xff08;修改/更新&#xff09; DELETE&#xff08;删除&#xff09;…

大数据之路:阿里巴巴大数据实践——离线数据开发

数据开发平台 统一计算平台MaxCompute&#xff1a;主要服务于海量数据的存储和计算 &#xff0c;提供完善的数据导入方案&#xff0c; 以及多种经典的分布式计算模型&#xff0c;提供海量数据仓库的解决方案&#xff0c;能够更快速地解决用户的海量数据计算问题&#xff0c;有效…

我的网页聊天室设计

一、需求分析1.用户管理模块注册功能实现一个注册页面。注册页面上包含了一个输入框&#xff0c;输入用户名和密码. 注册成功后可以跳转到登录页面.登录功能实现一个登录页面。登录页面上包含一个输入框。输入用户名和密码. 登录成功后可以跳转到主页面.2.主界面用户信息左上角…

数据结构自学Days10 -- 二叉树的常用实现

✅ 一、为什么要学习二叉树&#xff1f; 1. &#x1f4e6; 组织数据的高效方式 二叉树可以快速插入、删除、查找数据&#xff0c;尤其在平衡时&#xff0c;时间复杂度为 $O(\log n)$。 适合表示分层结构&#xff08;如组织结构、文件系统、语法树&#xff09;。 2. &#x…

Java注解家族--`@ResponseBody`

ResponseBody ResponseBody是 Spring 框架中的一个注解&#xff0c;在基于 Spring 的 Web 开发中扮演着重要角色&#xff0c;以下是对它的详细总结&#xff1a; 1.定义与基本功能 定义&#xff1a;ResponseBody注解用于将 Controller 方法的返回值&#xff0c;通过适当的 HttpM…

react-window 大数据列表和表格数据渲染组件之虚拟滚动

简介 React Window 是一个高效的 React 组件库&#xff0c;专为渲染大数据列表和表格数据而设计。它通过”虚拟化”技术&#xff08;也称为”窗口化”或”列表虚拟化”&#xff09;解决了在 React 应用中渲染大量数据时的性能问题。与传统方法不同&#xff0c;React Window 只…

Eltable tree形式,序号列实现左对齐,并且每下一层都跟上一层的错位距离拉大

要的是如图所示效果序号加个class-name写样式然后给eltable加indent属性就可以了&#xff0c;我设置的25

FOC算法中SIMULINK一些常用模块(2)-Permanent Magnet Synchronous Machine模块

一&#xff0c;介绍这三个模块一起介绍了&#xff0c;由左到右&#xff0c;分别是电源模块&#xff0c;驱动模块和电机模块。主要介绍一下电机模块二&#xff0c;DC Voltage SourceDC Voltage Source 模块是用于表示直流电压源的基本组件&#xff0c;可以提供恒流直压&#xff…

RPG62.制作敌人攻击波数二:攻击ui

1。经典创建userwidget&#xff0c;使用xmbtextblock&#xff0c;结构如下。然后设置动画与音频&#xff0c;上下的参数是一样的&#xff0c;转到图表打开BP_SurvialGameMode2.再创建一个widget&#xff0c;结构如下新添的动画打开XMBGameModeBase&#xff0c;创建构造函数AXMB…

DL00691-基于深度学习的轴承表面缺陷目标检测含源码python

DL00691-基于深度学习的轴承表面缺陷目标检测含源码python

Word 中为什么我的图片一拖就乱跑,怎么精确定位?

核心原因&#xff1a;文字环绕方式 (Text Wrapping) 问题的根源在于图片的**“文字环绕”**设置。 默认状态&#xff1a;“嵌入型” (In Line with Text) 当您插入一张图片时&#xff0c;Word默认会把它当作一个巨大的文字字符来处理。这就是为什么您拖动它时&#xff0c;它会像…

Linux物理地址空间入门:从硬件到内核内存的基石

目录 一、物理地址空间是什么&#xff1f; 二、物理地址空间的构成&#xff1a;不仅仅是内存 三、Linux内核如何管理物理地址空间 &#xff08;1&#xff09;物理内存的碎片化问题 &#xff08;2&#xff09;物理地址的分区管理 &#xff08;3&#xff09;物理地址与内核…

【2025最新版】PDFelement全能PDF编辑器

工具https://pan.quark.cn/s/a56d17fd05dd强大全能的PDF编辑神器PDFelementPro 全能PDF工具套装 PDF阅读器 PDF创建器 PDF编辑器 PDF注释器 PDF转换器 OCR识别工具 表单填写和创建 数据提取 批量处理 更多详情万兴PDF专业版特性。格式转换&#xff1a;PDFelement轻松…

基于单片机汽车驾驶防瞌睡防疲劳报警器自动熄火设计

&#xff08;一&#xff09;系统功能设计 51单片机汽车驾驶防疲劳防瞌睡报警器自动熄火15 本系统由STC89C52单片机、蜂鸣器、ADXL345重力加速度传感器、继电器控制、按键、指示灯及电源组成。 1、通过按键点亮led灯&#xff0c;代表车辆启动和熄火。 2、车辆启动后&#xff0c;…

OpenCV中的卷积高斯模糊与中值模糊

目录 一、卷积高斯模糊 (Gaussian Blur) 1. 原理与数学基础 2. OpenCV函数实现 3. 关键参数说明 4. 代码示例 5. 特点与应用 二、中值模糊 (Median Blur) 1. 原理与数学基础 2. OpenCV函数实现 3. 关键参数说明 4. 代码示例 5. 特点与应用 三、两种模糊方法对比分析…

macbookpro m1 max本儿上速搭一个elasticsearch+kibana环境

一、找个目录&#xff0c;新建一个: docker-compose.yml version: "3.9" services:elasticsearch:image: docker.elastic.co/elasticsearch/elasticsearch:8.13.0 # 与 Kibana 版本一致container_name: elasticsearchenvironment:- discovery.typesingle-node- xpa…

部署zabbix企业级分布式监控

一. 监控系统的功能概述监控、从中文的字义来看&#xff0c;有两个内容&#xff0c;一是检测&#xff0c;二是控制。重点在第一个字眼&#xff0c;即检测、预防的意思。监控&#xff0c;对应的英文单词是 Monitoring。在计算机领域&#xff0c;可以将其分为5种监控类型。应用性…

【重学MySQL】redolog binlog

目录 Buffer Pool是什么&#xff1f; redo log&#xff08;Innodb独有&#xff09; 为什么需要redolog&#xff1f; 类比的方式巧记redolog binlog&#xff08;Server层独有&#xff09; binlog是干啥的&#xff1f; 为什么有了 binlog&#xff0c; 还要有 redo log&…

企业信息化建设技术底座建设解决方案

1、企业数字化底座与数字化综述2、企业数字化底座与数字化总体架构3、企业数字化底座与数字化规划设计4、企业数字化底座与数字化建设运营5、企业数字化底座与数字化未来展望篇幅有限以下只展示部分截图&#xff1a;

Spring Cloud Alibaba 之 Nacos

Spring Cloud Alibaba 之 Nacos . Nacos官方文档&#xff1a; https://nacos.io/docs/latest/overview/?spm5238cd80.47ee59c.0.0.770fcd36HoVbU6 1.什么是Nacos Nacos&#xff08;Dynamic Naming and Configuration Service&#xff09;是阿里巴巴开源的一款动态服务发现、…