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
英文地址,請注明出處:http://en.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;是阿里巴巴開源的一款動態服務發現、…