篇章八 論壇系統——業務開發——登錄

目錄

1.登錄

1.1 順序圖

1.2 參數要求

1.3 接口規范

1.4 實現流程

1.編寫SQL

2.dao層接口

3.定義Service接口

4.實現Service接口

5.單元測試

6. Controller實現方法對外提供API接口

7.測試API接口

8.實現前端邏輯,完成前后端交互

??編輯


1.登錄

1.1 順序圖

1.2 參數要求

1.3 接口規范

1.4 實現流程

1.編寫SQL

2.dao層接口

3.定義Service接口

/*** 根據用戶名查詢用戶信息* @param username 用戶名* @return 用戶信息*/User selectByUserName(String username);/*** 處理用戶登錄* @param username 用戶名* @param password 密碼* @return 用戶信息*/User login(String username,String password);

4.實現Service接口

 /*** 根據用戶名查詢用戶信息** @param username 用戶名* @return 用戶信息*/@Overridepublic User selectByUserName(String username) {// 1.非空校驗if(StringUtils.isEmpty(username)) {// 打印日志log.warn(ResultCode.FAILED_PARAMS_VALIDATE.toString());// 拋出異常, 統一拋出 ApplicationExceptionthrow new ApplicationException(AppResult.failed(ResultCode.FAILED_PARAMS_VALIDATE));}// 返回查詢結果return userMapper.selectByUserName(username);}/*** 處理用戶登錄** @param username 用戶名* @param password 密碼* @return 用戶信息*/@Overridepublic User login(String username, String password) {// 1.非空校驗if(StringUtils.isEmpty(username) || StringUtils.isEmpty(password)) {// 打印日志log.warn(ResultCode.FAILED_PARAMS_VALIDATE.toString());// 拋出異常, 統一拋出 ApplicationExceptionthrow new ApplicationException(AppResult.failed(ResultCode.FAILED_LOGIN));}// 2.按用戶名查詢用戶信息User user = selectByUserName(username);// 3.對查詢結果進行非空校驗if (user == null) {// 打印日志log.warn(ResultCode.FAILED_LOGIN.toString() + ", username = " + username);// 拋出異常, 統一拋出 ApplicationExceptionthrow new ApplicationException(AppResult.failed(ResultCode.FAILED_LOGIN));}// 4.對密碼校驗String encryptPassword = MD5Util.md5Salt(password, user.getSalt());// 5.用密文和數據庫中存的用戶密碼進行比較if(!encryptPassword.equals(user.getPassword())) {// 打印日志log.warn(ResultCode.FAILED_LOGIN.toString() + ", 密碼錯誤, username = " + username);// 拋出異常, 統一拋出 ApplicationExceptionthrow new ApplicationException(AppResult.failed(ResultCode.FAILED_LOGIN));}// 打印登錄成功的日志log.info("[UserServiceImpl.login()]: " + username + " 登錄成功");return user;}

5.單元測試

  @Testvoid selectByUserName() {System.out.println(userService.selectByUserName("boy"));}@Testvoid login() {System.out.println(userService.login("wj", "123456"));}

6. Controller實現方法對外提供API接口

7.測試API接口

8.實現前端邏輯,完成前后端交互

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/909637.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/909637.shtml
英文地址,請注明出處:http://en.pswp.cn/news/909637.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

AI-Compass前沿速覽:從企業級智能體CoCo到騰訊開源3D建模,Meta視頻預測模型V-JEPA 2、小紅書開源文本大模型

AI 大事件 智譜推出首個企業級超級助手 Agent——CoCo**[1]** 智譜推出首個企業級超級助手 Agent——CoCo,具備交付導向、記憶機制和無縫嵌入三大企業級特性。能全流程輔助工作,根據員工職能和需求主動服務,無縫接入企業資源,提…

element ui el-table嵌套el-table,實現checkbox聯動效果

HTML代碼&#xff1a; <el-table header-row-class-name"my-el-table-header" row-class-name"my-el-table-body" ref"multipleGroupTable" :data"vehicleGroupTableData" tooltip-effect"dark" style"width: 100…

android stdio 關閉所有真機

Android Studio如何關閉所有真機 Android Studio是開發Android應用程序的集成開發環境&#xff0c;通常我們需要使用真機來進行應用程序的調試和測試。但是&#xff0c;在某些情況下&#xff0c;我們可能需要關閉所有已連接的真機。本文將介紹如何在Android Studio中關閉所有真…

Java程序員如何設計一個高并發系統?

設計一個高并發系統并非易事&#xff0c;如果不站在巨人的肩膀上來開展工作的話&#xff0c;這條路是很難保持一路暢通的&#xff01;所以&#xff0c;本著好東西就是要拿出來分享的原則&#xff0c;LZ就把前段時間從阿里的一位老哥手上撈到的百億級系統架構設計實錄分享給大家…

Flutter 狀態管理與 API 調用的完美結合:從理論到實踐

在現代移動應用開發中&#xff0c;狀態管理和網絡請求是兩個至關重要的概念。Flutter 作為跨平臺開發的佼佼者&#xff0c;提供了豐富的狀態管理解決方案和網絡請求能力。本文將深入探討如何將 Flutter 的狀態管理與 API 調用有機結合&#xff0c;特別是針對常見的列表數據加載…

全網手機二次放號查詢API功能說明和Python調用示例

隨著手機號碼資源的日益緊張&#xff0c;“二次放號”現象愈發普遍&#xff0c;這給新用戶帶來了不少困擾&#xff0c;如頻繁收到騷擾信息、注冊App時號碼被占用等。為了解決這些問題&#xff0c;探數API 提供了一種有效的解決方案——全網手機二次放號查詢API。本文將詳細介紹…

mysql分區備份及還原

備份 ps&#xff1a;mysql是docker啟動的&#xff0c;并且data數據掛載出來了 找到mysql數據庫目錄 /opt/tciot/mysql/data/tciot002ddb 需要備份的文件在數據庫目錄下&#xff08;例如 iot_location#p#p202402.ibd&#xff09;&#xff0c;備份需要的分區cp出來 備份后刪除…

輕量級 ioc 框架 loveqq,支持接口上傳 jar 格式的 starter 啟動器并支持熱加載其中的 bean

輕量級 ioc 框架 loveqq&#xff0c;支持接口上傳 jar 格式的 starter 啟動器并支持熱加載其中的 bean 熱加載 starter 啟動器代碼示例&#xff1a; package com.kfyty.demo;import com.kfyty.loveqq.framework.boot.K; import com.kfyty.loveqq.framework.boot.context.Contex…

圖論----4.實現 Trie (前綴樹)

題目鏈接 /** Trie前綴樹基本結構: (多叉單詞查找樹)每個Trie中包含一個Trie數組與一個結束標識 Trie[] children Trie數組,每個節點都可存放一個Trie,其索引代表該節點對應的字符。 boolean isEnd 結束標識, 代表當前節點是否是一個完整單詞的結尾巴 前綴樹insert流程: 計算第…

DELL R730XD服務器調整風扇轉速

注意&#xff1a; 進入iDRAC的Web管理界面&#xff0c;左側iDRAC設置->網絡->IPMI設置&#xff0c;勾選啟用LAN上的IPMI。使用ipmitool調整&#xff0c;服務器電源斷開后就會失效&#xff0c;如果想要永久生效&#xff0c;就在服務器端寫一個開機自啟動腳本。先關閉風扇…

從C++編程入手設計模式——策略設計模式

從C編程入手設計模式——策略設計模式 ? 在我們平時寫程序的過程中&#xff0c;經常會遇到這樣的情況&#xff1a;一個對象的某個功能可以有多種實現方式&#xff0c;而且可能會根據不同的場景切換這些方式。比如一只動物可以發出不同的叫聲&#xff0c;一個排序器可以使用不…

網頁中調用自定義字體可以通過 ?CSS? 的 @font-face 規則實現

以下是詳細方法&#xff1a; ?1. 使用系統默認字體? 如果只是希望指定字體&#xff0c;可以直接使用 font-family&#xff1a; body { font-family: "Microsoft YaHei", "PingFang SC", sans-serif; /* 中英文適配 */ } ?2. 使用自定義字體&…

[CVPR 2025] DeformCL:基于可變形中心線的3D血管提取新范式

CVPR 2025 | DeformCL&#xff1a;基于可變形中心線的3D血管提取新范式 論文信息 標題&#xff1a;DeformCL: Learning Deformable Centerline Representation for Vessel Extraction in 3D Medical Image作者&#xff1a;Ziwei Zhao, Zhixing Zhang, Yuhang Liu, 等單位&…

BeckHoff <---> Keyence (LJ-X8000) 2D相機 Profinet 通訊

目錄 ?編輯 一、 設備介紹 1、產品特點 2、控制器選擇 3、應用領域 二、PLC通訊接口配置 1、PLC添加GSDML文件 2、定義輸入3、變量實例化 3、定義輸出變量實例化 三、設備通訊接口數據類型定義 1、定義全局結構體數據 2、定義 INput Decode結構體數據 四、通訊…

electron在單例中實現雙擊打開文件,并重復打開其他文件

單實例的思路 首次通過雙擊文件打開應用 將filePath傳給render 使用中的應用&#xff0c;再次雙擊打開文件 第一個實例創建時&#xff0c;同時創建一個通信服務器net.createServer()第二個實例創建時&#xff0c;連接第一個服務器net.createConnection()將再次打開的filePath傳…

一、基礎架構層:高性能引擎基石

1. ECS架構工業級實現 // EnTT實戰示例&#xff1a;導彈系統組件定義 struct Position { vec3 value; }; struct Velocity { vec3 value; }; struct ExplodeWhen { float distance; };entt::registry registry;// 實體創建與組件綁定 auto missile registry.create(); regist…

rockylinuxapache和Linux服務配置

目錄 apache nginx 反向代理配置[rootk8s2 ~]# [rootk8s2 ~]# cat /etc/nginx/conf.d/webserver.confserver { listen 80; server_name www.sxy1.com; location / { root /var/www/html; index index.html; } location /py/{ …

ai 幻覺

ai幻覺: 感知人類觀察者不存在或無法感知的模式或對象&#xff0c;從而產生無意義或完全不準確的輸出 有時 AI 算法會生成并非基于訓練數據的輸出結果&#xff0c;繼而被轉換器錯誤解碼或不遵循任何可識別的模式。換句話說&#xff0c;它會在給出響應時“產生幻覺” 致因:訓練…

freeRTOS移植實驗

提示&#xff1a;文章 文章目錄 前言一、背景第6章節 二、2.12.2 三、3.1 總結 前言 前期疑問&#xff1a; 本文目標&#xff1a; 一、背景 在家里先使用野火網盤資料里的freeRTOS源碼&#xff0c;網盤里是v9.0.0。 J:\野火\STM32F103ZET6_霸道開發板\A盤&#xff08;資料盤…

食品加工溫控場景:PROFIBUS轉MODBUS的溫控表連接規范

在現代的工業自動化領域里&#xff0c;實現不同通信協議設備間無縫對接的技術日益受到重視。這不僅關乎系統整合性和效率的提升&#xff0c;更是實現復雜工業過程自動化的必經之路。特別是在眾多的通信協議中&#xff0c;MODBUS和PROFIBUS這兩種廣泛使用的協議因其各自的優勢而…