【如何在IntelliJ IDEA中新建Spring Boot項目(基于JDK 21 + Maven)】

AA. 我的開發環境配置與核心工具鏈解析

一、開發環境全覽

C:\Users\Again>java -version
java version "21.0.1" 2023-10-17 LTS
Java(TM) SE Runtime Environment (build 21.0.1+12-LTS-29)
Java HotSpot(TM) 64-Bit Server VM (build 21.0.1+12-LTS-29, mixed mode, sharing)C:\Users\Again>javac -version
javac 21.0.1C:\Users\Again>node -v
v20.18.1C:\Users\Again>npm -v
10.8.2C:\Users\Again>git --version
git version 2.47.1.windows.2C:\Users\Again>python --version
Python 3.11.5C:\Users\Again>mysql --version
mysql  Ver 8.0.28 for Win64 on x86_64 (MySQL Community Server - GPL)C:\Users\Again>mvn -v
Apache Maven 3.9.9 (8e8579a9e76f7d015ee5ec7bfcdc97d260186937)
Maven home: D:\apache-maven-3.9.9-bin\apache-maven-3.9.9
Java version: 21.0.1, vendor: Oracle Corporation, runtime: C:\Program Files\Java\jdk-21
Default locale: zh_CN, platform encoding: UTF-8
OS name: "windows 11", version: "10.0", arch: "amd64", family: "windows"

通過網盤分享的文件:Java基礎常用軟件 鏈接:
https://pan.baidu.com/s/1I2w-dFsGkqfdjMAOFi-QOA
提取碼: aet4

二、核心開發工具鏈深度解析

(一)Java生態系統基建

1. JDK 21.0.1 LTS(Oracle HotSpot)
  • 版本特性
    ? 作為LTS版本提供至2030年的長期支持
    ? 引入結構化并發(JEP 453)、記錄模式(JEP 449)等生產級特性
    ? G1 GC優化實現更低延遲與更高吞吐量
  • 環境關聯
    終端顯示javac 21.0.1與運行時路徑C:\Program Files\Java\jdk-21,已配置系統環境變量JAVA_HOME指向該路徑
2. Apache Maven 3.9.9
  • 工程化能力
    ? 基于D:\apache-maven-3.9.9-bin的標準安裝
    ? 自定義本地倉庫配置:
    <!-- settings.xml 關鍵配置 -->
    <localRepository>D:\dev_repo\maven_local_repository</localRepository>
    
    ? 支持Maven Enforcer插件強制版本約束,集成SpotBugs實現靜態代碼分析

通過網盤分享的文件:apache-maven-3.9.9-bin.zip 鏈接:
https://pan.baidu.com/s/17hJ20ZZz1raIWB41G75Hqw
提取碼: 8wdh

(二)JavaScript全棧工具鏈

1. Node.js v20.18.1(Current)
  • 運行時特性
    ● 內置fetch API原生支持,告別node-fetch第三方庫
    ● 實驗性WebAssembly垃圾回收(JEP 8305852)提升性能
    ● 終端顯示版本與npm 10.8.2配套,符合node -v輸出
  • 典型應用
    # 前端構建示例(Vite + React)
    npx create-vite@latest my-app --template react
    cd my-app && npm install && npm run dev
    
2. npm 10.8.2
  • 依賴管理升級
    ? 扁平化依賴樹默認啟用(package-lock.json自動生成)
    ? 支持npm install --workspace多包并行安裝
    ? 終端輸出版本與Node.js 20.x完美兼容,無版本沖突風險

(三)關系型數據庫中樞

MySQL 8.0.28 Community Edition
  • 企業級特性落地
    ? 窗口函數實戰:
    SELECT order_date, amount,SUM(amount) OVER (ORDER BY order_date ROWS BETWEEN 2 PRECEDING AND CURRENT ROW) AS moving_avg
    FROM sales;
    
    ? 原子DDL支持(如CREATE TABLE ... IF NOT EXISTS
    ? JSON數據類型優化,支持JSON_TABLE() relationalization查詢
  • 環境適配
    終端顯示Win64原生支持,基于MySQL Installer完成圖形化安裝,配置文件位于C:\ProgramData\MySQL\MySQL Server 8.0\my.ini

三、高效開發IDE矩陣

1. IntelliJ IDEA 2024.1(Ultimate Edition)

  • Java開發深度集成
    ? 內置Maven/Gradle控制面板,同步終端mvn -v的本地倉庫配置
    ? AI輔助編碼(Code With Me)支持自然語言生成代碼
    ? 可視化JVM監控工具,實時追蹤G1 GC狀態(對應JDK 21特性)
  • 效率插件推薦
    ? Lombok Plugin(簡化POJO開發)
    ? Docker Integration(一鍵部署Spring Boot容器)

通過網盤分享的文件:02、Java開發工具-IDEA 鏈接:
https://pan.baidu.com/s/1C8CFC7Q-jlqIlmUKwcIDtA
提取碼: 3ah5

2. Navicat Premium 17

  • 多數據庫管理中樞
    ? 同時連接MySQL 8.0.28與其他數據庫(如PostgreSQL 16)
    ? 可視化查詢生成器支持窗口函數圖形化配置
    ? 數據傳輸功能實現跨數據庫結構同步
  • 性能優化工具
    ? SQL Explain執行計劃分析
    ? 慢查詢日志實時監控(需配合MySQL開啟slow_query_log

通過網盤分享的文件:Navicat Premium 17.0.8 (x64).7z 鏈接:
https://pan.baidu.com/s/1CT50564aJ8vJIHAKNXtw9A
提取碼: wdhu

四、工具鏈協同工作流

Maven構建
npm腳本
原生驅動
REST API
JSON請求
代碼版本控制
IntelliJ IDEA
JDK 21運行時
Node.js
Vite前端應用
Navicat
MySQL 8.0數據庫
Git 2.47

五、環境擴展建議

  1. 版本管理:通過asdf工具實現JDK/Node.js多版本切換
  2. 容器化:基于Docker Desktop構建java:21-alpine+node:20-bullseye開發容器
  3. 自動化:配置GitHub Actions實現Maven構建與MySQL數據遷移自動化

這套開發環境以長期支持版本為核心,結合標準化工具鏈與現代IDE特性,既能滿足企業級項目的穩定性需求,又可快速響應新技術棧的探索需求。終端輸出的版本信息形成完整的工具鏈閉環,為開發、測試、部署全流程提供可追溯的環境基準。

BB.如何在IntelliJ IDEA中新建Spring Boot項目(基于JDK 21 + Maven)

一、環境準備

確保已安裝:

  • JDK 21.0.1(終端驗證:java -version顯示21.x)
  • Apache Maven 3.9.9(終端驗證:mvn -v顯示3.9.9)
  • IntelliJ IDEA 2024.1(支持Spring Boot 3.x+與JDK 21)

二、新建項目步驟

1. 啟動項目創建向導

  • 打開IDEA,點擊 新建項目(或快捷鍵 Ctrl+Shift+N),進入項目配置界面。

2. 選擇Spring Boot模板

  • 左側列表:找到并選中 Spring Boot(紅色框標記,如圖所示)。
  • 右側配置
    • 名稱:輸入項目名(如 springboot)。
    • 位置:選擇本地存儲路徑(如 F:\springboot_CSND\springboot)。
    • 語言:默認 Java(適配JDK 21)。
    • 構建工具:選擇 Maven(紅色框標記,與終端mvn -v配置一致)。
    • 組/工件:默認 com.example(可自定義包名)。
    • JDK:下拉選擇 21 java version ‘21.0.1’(匹配終端java -version)。
    • Java版本:選擇 21(與JDK版本同步)。

3. 配置Spring Boot依賴(下一步)

  • 點擊 下一步(N),進入Spring Initializr依賴選擇界面:
    • 必選:Spring Web(構建RESTful API)。
    • 可選:根據需求添加(如 Spring Data JPAMySQL Driver 等,對應數據庫工具鏈)。
    • 版本:默認Spring Boot最新穩定版(與JDK 21兼容)。
      在這里插入圖片描述
      在這里插入圖片描述

4. 完成項目創建

  • 點擊 創建,IDEA自動生成項目結構:
    • pom.xml:Maven依賴配置(包含Spring Boot Parent POM)。
    • src/main/java/com/example/springboot:主應用類(SpringbootApplication.java)。
    • src/main/resources:配置文件(application.propertiesapplication.yml)。

三、項目驗證

  1. 啟動應用
    右鍵主應用類,選擇 運行 ‘SpringbootApplication’,控制臺輸出:
"C:\Program Files\Java\jdk-21\bin\java.exe".   ____          _            __ _ _/\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \\\/  ___)| |_)| | | | | || (_| |  ) ) ) )'  |____| .__|_| |_|_| |_\__, | / / / /=========|_|==============|___/=/_/_/_/:: Spring Boot ::                (v3.5.0)2025-06-03T15:53:30.374+08:00  INFO 26000 --- [springboot] [           main] com.example.SpringbootApplication        : Starting SpringbootApplication using Java 21.0.1 with PID 26000 (F:\springboot_CSND\springboot\target\classes started by Again in F:\springboot_CSND\springboot)
2025-06-03T15:53:30.376+08:00  INFO 26000 --- [springboot] [           main] com.example.SpringbootApplication        : No active profile set, falling back to 1 default profile: "default"
2025-06-03T15:53:31.122+08:00  INFO 26000 --- [springboot] [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port 8080 (http)
2025-06-03T15:53:31.137+08:00  INFO 26000 --- [springboot] [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2025-06-03T15:53:31.138+08:00  INFO 26000 --- [springboot] [           main] o.apache.catalina.core.StandardEngine    : Starting Servlet engine: [Apache Tomcat/10.1.41]
2025-06-03T15:53:31.199+08:00  INFO 26000 --- [springboot] [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2025-06-03T15:53:31.199+08:00  INFO 26000 --- [springboot] [           main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 782 ms
2025-06-03T15:53:31.535+08:00  INFO 26000 --- [springboot] [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port 8080 (http) with context path '/'
2025-06-03T15:53:31.540+08:00  INFO 26000 --- [springboot] [           main] com.example.SpringbootApplication        : Started SpringbootApplication in 1.609 seconds (process running for 2.327)

在這里插入圖片描述

CC. Spring Boot 項目包結構搭建:分層架構的規范實現

一、包創建操作(IntelliJ IDEA 環境)

1.定位根包
在項目導航欄中,展開 src/main/java 目錄,找到根包 com.example(Spring Boot 應用的基礎包路徑)。

2.創建分層包
右鍵點擊 com.example,依次選擇 New → Package,分別創建以下四個包(嚴格遵循小寫命名規范,符合 Java 包命名 conventions):
controller:處理 HTTP 請求與響應的控制層
dao:數據訪問層(封裝數據庫 CRUD 操作,如 JPA Repository)
entity:實體類層(映射數據庫表結構的 POJO)
service:業務邏輯層(實現核心業務規則與事務管理)
最終包結構如下(與截圖一致,紅色框標注核心分層包):

com.example
├─ controller  # 控制層(請求處理)
├─ dao         # 數據訪問層(數據庫交互)
├─ entity      # 實體層(表映射)
├─ service     # 業務邏輯層(事務與業務規則)
└─ SpringbootApplication.java  # 應用啟動類

![在這里插入圖片描述](https://i-blog.csdnimg.cn/direct/7ee323c60c80403c8f7f32b4511b838d.png在這里插入圖片描述

DD. 在Spring Boot項目中創建實體類和控制器

1. 創建User實體類(Entity)

路徑src/main/java/com/example/entity/User.java

步驟

  1. entity包上右鍵 → New → Java Class
  2. 輸入類名User并回車
  3. 添加以下代碼:
package com.example.entity;public class User {private Integer id;private String name;private String password;private Integer age;private String sex;private String phone;// 無參構造函數public User() {}// 全參構造函數public User(Integer id, String name, String password, Integer age, String sex, String phone) {this.id = id;this.name = name;this.password = password;this.age = age;this.sex = sex;this.phone = phone;}// Getter 和 Setter 方法(按順序添加)public Integer getId() { return id; }public void setId(Integer id) { this.id = id; }public String getName() { return name; }public void setName(String name) { this.name = name; }public String getPassword() { return password; }public void setPassword(String password) { this.password = password; }public Integer getAge() { return age; }public void setAge(Integer age) { this.age = age; }public String getSex() { return sex; }public void setSex(String sex) { this.sex = sex; }public String getPhone() { return phone; }public void setPhone(String phone) { this.phone = phone; }
}

說明

  • 這是一個標準的Java Bean類(POJO)
  • 使用封裝特性(private字段+public訪問器)
  • 提供了無參和全參構造函數
  • 字段設計對應數據庫中的用戶表結構
    構造函數GetterSetter可以右鍵->生成里快速生成
    在這里插入圖片描述
2. 創建User控制器(Controller)

路徑src/main/java/com/example/controller/UserController.java

步驟

  1. controller包上右鍵 → New → Java Class
  2. 輸入類名UserController并回車
  3. 添加以下代碼:
package com.example.controller;import com.example.entity.User;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
@RequestMapping("user")
public class UserController {@GetMapping("/start")public String start() {return "這是你的第一個Spring項目工程!已經順利啟動";}@GetMapping("/getUser")public User getUser() {return new User(1, "張三", "123456", 18, "男", "12345678901");}
}

說明

  • @RestController:聲明這是一個RESTful風格的控制器
  • @RequestMapping("user"):設置基礎請求路徑
  • @GetMapping:處理HTTP GET請求
  • start()方法:返回字符串消息,驗證項目啟動
  • getUser()方法:返回一個User對象實例,測試數據傳輸
    在這里插入圖片描述
    在這里插入圖片描述
3. 驗證功能

啟動應用

  1. 右鍵運行SpringbootApplication類的main方法
  2. 查看控制臺日志,確認Tomcat啟動成功(默認端口8080

測試接口

  1. 訪問:http://localhost:8080/user/start
    預期返回:這是你的第一個Spring項目工程!已經順利啟動
    在這里插入圖片描述

  2. 訪問:http://localhost:8080/user/getUser
    預期返回JSON數據:

    {"id": 1,"name": "張三","password": "123456","age": 18,"sex": "男","phone": "12345678901"
    }
    

在這里插入圖片描述


還可以這樣查看
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
得到的結果和瀏覽器中是一樣的.

推薦網站: https://json4u.com/ 是一個專門給開發者用的在線JSON工具網站 。它有很多實用功能:

  • 數據可視化:能把JSON數據變成圖形或者表格的樣子展示出來,就像把一堆雜亂的東西整理得整整齊齊、清清楚楚,讓你很容易看懂數據的結構 。
  • 數據處理:可以把格式亂亂的JSON數據整理得規規矩矩(格式化);也能把JSON數據變得更緊湊(壓縮) ;還能檢查你的JSON數據格式對不對(驗證)。要是你需要把JSON數據變成其他格式,比如XML、CSV、YAML ,它也能幫你一鍵轉換。
  • 數據對比:能幫你找出兩份JSON數據有哪些地方不一樣,快速發現差異。
  • 其他小功能:還能做Base64編解碼、生成UUID這些開發中會用到的小任務 。
    +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

這個網站用起來很方便,不需要注冊賬號,打開就能用,而且沒有廣告打擾 。
它處理數據都是在你自己的瀏覽器里進行的,不用擔心數據會被偷偷傳到其他地方,比較保護隱私。

EE. 配置數據訪問層:通過 MyBatis、MySQL 驅動及通用 Mapper 建立 Java 應用與 MySQL 數據庫連接與操作能力

修改pom.xml,添加MyBatis依賴 添加MySQL驅動依賴 添加tk.mybatis依賴,目的的為了支持數據庫訪問功能。這些依賴分別提供了以下功能:

1. MyBatis 集成依賴 (mybatis-spring-boot-starter)
  • 作用
    簡化 MyBatis 與 Spring Boot 的集成,提供 SQL 映射和 ORM 功能,支持通過注解或 XML 配置數據庫操作。

  • 你需要它的原因

    • 后續開發中,UserDao 接口將使用 MyBatis 的 @Mapper@Select 等注解(如 @Select("SELECT * FROM user"))。
    • 服務層(如 UserService)需要通過 DAO 接口訪問數據庫,而該依賴提供了接口與 SQL 的映射機制。
2. MySQL 驅動依賴 (mysql-connector-j)
  • 作用
    提供 Java 與 MySQL 數據庫的連接功能,是 JDBC 訪問 MySQL 的基礎組件。

  • 你需要它的原因

    • 配置文件中已指定 MySQL 的 JDBC 連接 URL:

      spring.datasource.url=jdbc:mysql://localhost:3306/springboot
      
    • 缺少該驅動會導致應用啟動時拋出 java.sql.SQLException: No suitable driver found 異常。

3. tk.mybatis 通用 Mapper (mapper-spring-boot-starter)
  • 作用
    提供通用 Mapper 功能,基于單表 CRUD 操作自動生成 SQL,減少重復代碼。

  • 你需要它的原因

    • 配置文件中已包含 tk.mybatis 的配置:

      mapper.mappers=tk.mybatis.mapper.common.Mapper
      
    • 后續開發中,若 UserDao 接口繼承 tk.mybatis.mapper.common.Mapper,可直接獲得單表 CRUD 方法(如 selectByPrimaryKeyinsert 等),無需編寫具體 SQL。

        <!-- 添加MyBatis依賴 添加MySQL驅動依賴  添加tk.mybatis依賴--><!-- 添加MyBatis依賴 --><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>3.0.3</version></dependency><!-- 添加MySQL驅動依賴 --><dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId><scope>runtime</scope></dependency><!-- tk.mybatis依賴 --><dependency><groupId>tk.mybatis</groupId><artifactId>mapper-spring-boot-starter</artifactId><version>4.2.2</version></dependency>

在這里插入圖片描述
在這里插入圖片描述

在這里插入圖片描述
在這里插入圖片描述

maven_repository其實就是maven的倉庫repository,使用默認的C:\Users\Again\.m2\repository也可以,從上圖可以看到我這里默認的倉庫路徑C:\Users\Again\.m2\repository里都是完整的,如果改成這個路徑D:\apache-maven-3.9.9-bin\maven_repository就會有些插件缺失(上圖紅色波浪線報錯的插件),需要下載源代碼/或文檔+新加載所有Maven項目,也就是如圖
在這里插入圖片描述
在這里插入圖片描述
總之,Maven 項目運行時需要在本地倉庫中找到pom.xml聲明的所有依賴(包括插件)

Maven遵循"約定優于配置"的原則,當你在pom.xml中聲明依賴后:

  • 首次構建:Maven會從中央倉庫或配置的遠程倉庫下載依賴到本地倉庫(默認路徑:~/.m2/repository
  • 后續構建:直接使用本地倉庫的緩存文件,無需重復下載
  • 添加依賴后,Maven 會自動下載所需文件到本地倉庫(默認路徑:~/.m2/repository)。
  • 本地倉庫是必需的:Maven必須在本地找到所有依賴才能編譯和運行項目。
    在這里插入圖片描述

FF.構建數據訪問層與服務層:創建 UserDao 接口與 UserService 類

一、創建 MyBatis 數據訪問接口(UserDao)

文件路徑com.example.dao.UserDao
功能說明

  • 通過 @Mapper 注解標識為 MyBatis 數據訪問對象(DAO)
  • 使用 @Select 注解直接編寫 SQL 查詢語句,實現從 user 表查詢所有數據
  • 返回值為 List<User>,通過 MyBatis 自動映射數據庫結果到 User 實體類

代碼實現

package com.example.dao;import com.example.entity.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;import java.util.List;@Mapper // @Mapper 是 MyBatis 中的一個注解,用于標識一個接口是一個 MyBatis 的數據訪問對象(DAO:Data Access Object數據訪問對象)。它告訴 MyBatis 這個接口中的方法對應數據庫中的某個操作,比如查詢、插入、更新和刪除等。
public interface UserDao {@Select("SELECT * FROM user") // @Select 是 MyBatis 中的一個注解,用于標識一個方法對應數據庫中的某個查詢操作。它告訴 MyBatis 這個方法對應數據庫中的某個查詢操作,比如 SELECT、UPDATE、DELETE 等。List<User> getUser();
}

在這里插入圖片描述

二、創建服務層組件(UserService)

文件路徑com.example.service.UserService
功能說明

  • 通過 @Service 注解標識為 Spring 服務層組件,封裝業務邏輯
  • 使用 @Autowired 自動注入 UserDao 依賴,實現服務層對數據訪問層的調用
  • 定義 getUser() 方法,調用 UserDao 的查詢功能并返回結果

代碼實現

package com.example.service;import com.example.dao.UserDao;
import com.example.entity.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;@Service // @Service 是 Spring 框架中的一個注解,用于標識一個類是一個服務層組件。它通常用于在應用程序中定義業務邏輯層,用于處理業務邏輯和數據訪問。
public class UserService {@Autowired // @Autowired 是 Spring 框架中的一個注解,用于自動注入對象。當一個類需要依賴另一個類時,可以使用 @Autowired 來將依賴對象自動注入到該類中。private UserDao userDao;public List<User> getUser() {return userDao.getUser();}
}

在這里插入圖片描述

三、層間協作邏輯

Controller(控制層) → UserService(服務層) → UserDao(數據訪問層) → MyBatis → MySQL 數據庫
  • 服務層作為業務邏輯入口,協調數據訪問層與上層組件的交互
  • 數據訪問層通過 MyBatis 實現數據庫操作的封裝,解耦業務邏輯與底層 SQL

四、關鍵注解說明

注解作用場景核心功能
@Mapper數據訪問接口(DAO)告訴 MyBatis 掃描該接口,生成 SQL 執行代理對象
@Select數據庫查詢方法直接在接口方法上聲明 SQL 語句,避免編寫 XML 配置文件
@Service服務層類標識為 Spring 管理的 Bean,納入依賴注入容器
@Autowired依賴注入自動將 UserDao 實例注入到 UserService 中,實現層間調用

GG. 《構建 springboot 數據庫 user 表(Navicat 可視化 + SQL 腳本實現)》

一、前期準備

確保已安裝 Navicat Premium 工具,且本地 MySQL 服務(localhost:3306)正常運行,可通過 Navicat 測試連接(如最后一張圖中“測試連接”功能)驗證。

二、Navicat 可視化操作流程

1. 連接數據庫

  • 打開 Navicat,在“我的連接”找到 localhost_3306,右鍵選擇打開連接(或雙擊),輸入密碼后建立與 MySQL 服務器的連接。

2. 新建數據庫

  • 連接成功后,右鍵 localhost_3306,選擇新建數據庫
  • 在彈窗中填寫:
    • 數據庫名稱:springboot
    • 字符集:utf8mb4(支持 emoji 及特殊字符)
    • 排序規則:utf8mb4_unicode_ci(通用排序,適配多語言)
  • 點擊確定,完成數據庫創建。

3. 創建數據表(可視化方式)

  • 選中左側 springboot 數據庫,點擊頂部新建表,進入設計界面。

  • 依次添加字段:

    字段名類型長度非空主鍵注釋
    idint-????主鍵 ID
    namevarchar255??用戶名
    passwordvarchar255??密碼
    ageint-??年齡
    sexvarchar255??性別
    phonevarchar255??手機號
  • 點擊保存,命名表為 user,完成表結構創建。

4. 插入測試數據(可視化 + SQL 兩種方式)

方式 1:可視化插入
  • 雙擊左側 user 表,進入數據編輯頁,點擊添加數據,手動填入:

    1, 張三, 123456, 24, 男, 18888888888  
    2, 李四, 123456, 25, 女, 19900009999  
    
  • 點擊保存,完成數據插入。

方式 2:SQL 腳本插入
  • 選中 springboot 數據庫,點擊頂部新建查詢,打開 SQL 編輯器。

  • 粘貼插入語句:

    INSERT INTO `user` VALUES (1, '張三', '123456', 24, '男 ', '18888888888');  
    INSERT INTO `user` VALUES (2, '李四', '123456', 25, '女', '19900009999');  
    
  • 點擊運行,執行腳本插入數據。

三、SQL 腳本完整說明(可直接復用)

以下是創建 user 表及插入數據的完整 SQL 腳本,可通過 Navicat“運行 SQL 文件”或直接在查詢編輯器執行:

/*  功能:創建 springboot 數據庫 user 表并插入測試數據  適用場景:項目初始化、數據遷移  
*/  -- 設置字符集(避免中文亂碼)  
SET NAMES utf8mb4;  
SET FOREIGN_KEY_CHECKS = 0; -- 關閉外鍵檢查(建表時可臨時關閉)  -- 1. 刪除舊表(若存在,避免重復創建報錯)  
DROP TABLE IF EXISTS `user`;  -- 2. 創建新表  
CREATE TABLE `user`  (  `id` int NOT NULL AUTO_INCREMENT COMMENT '主鍵ID',  `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '用戶名',  `password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '密碼',  `age` int NULL DEFAULT NULL COMMENT '年齡',  `sex` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '性別',  `phone` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '手機號',  PRIMARY KEY (`id`) USING BTREE -- 主鍵索引,加速查詢  
) ENGINE = InnoDB AUTO_INCREMENT = 3 -- 自增起始值  CHARACTER SET = utf8mb4 -- 字符集  COLLATE = utf8mb4_unicode_ci -- 排序規則  COMMENT = '用戶信息表' -- 表注釋  ROW_FORMAT = Dynamic; -- 行存儲格式(適配 InnoDB)  -- 3. 插入測試數據  
INSERT INTO `user` VALUES (1, '張三', '123456', 24, '男 ', '18888888888');  
INSERT INTO `user` VALUES (2, '李四', '123456', 25, '女', '19900009999');  -- 4. 恢復外鍵檢查(建表完成后開啟)  
SET FOREIGN_KEY_CHECKS = 1;  

四、流程驗證

  • 表結構驗證:在 Navicat 中展開 springbootuser,查看字段、類型、注釋是否與設計一致。
  • 數據驗證:雙擊 user 表,檢查是否存在“張三、李四”兩條測試數據。

五、常見問題處理

  1. 連接失敗

    • 檢查 MySQL 服務是否啟動(命令行執行 services.msc,確認 MySQL 服務狀態為 Running)。
    • 核對 Navicat 連接配置(主機 localhost、端口 3306、用戶名 root、密碼是否正確)。
  2. 建表報錯

    • 若提示“表已存在”,先執行 DROP TABLE IF EXISTS user; 再重試。
    • 檢查字段名、類型是否符合 MySQL 語法(如 varchar 需指定長度)。
  3. 數據插入失敗

    • 確保字段順序與 INSERT 語句值順序一致(如 id 自增時,可省略 id 字段,讓數據庫自動賦值)。

通過以上流程,可完整構建 springboot 數據庫的 user 表并插入測試數據,為 Java 項目(如 Spring Boot)提供基礎數據支撐 。

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

HH. 《Spring Boot 數據庫與 MyBatis 配置流程說明(application.properties/.yml雙版本) 》

一、配置文件選擇與核心作用

Spring Boot 支持 application.properties(鍵值對格式)和 application.yml(YAML 格式)兩種配置文件,核心作用是:

  1. 數據庫連接配置:指定 MySQL 數據庫地址、賬號密碼、驅動等信息。
  2. MyBatis 集成配置:告訴 MyBatis 去哪里找 SQL 映射文件(.xml)和實體類。
  3. 通用 Mapper 配置:啟用 tk.mybatis 的通用 CRUD 功能,減少代碼冗余。

二、application.properties 配置詳解

# 應用名稱
spring.application.name=springboot# 數據庫配置
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/springboot?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false&serverTimezone=GMT%2b8&allowPublicKeyRetrieval=true
spring.datasource.username=root
spring.datasource.password=123456# MyBatis配置
mybatis.mapper-locations=classpath:mapper/*.xml
mybatis.type-aliases-package=com.example.springboot.entity
mybatis.configuration.map-underscore-to-camel-case=true
mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl# 通用Mapper配置
mapper.mappers=tk.mybatis.mapper.common.Mapper
mapper.not-empty=true
mapper.identity=MYSQL# 服務端口配置
server.port=8080

1. 數據庫連接配置

# 數據庫驅動(MySQL 8+ 推薦使用 com.mysql.cj.jdbc.Driver)
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
# 數據庫 URL(包含字符集、時區等參數)
spring.datasource.url=jdbc:mysql://localhost:3306/springboot?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false&serverTimezone=GMT%2b8&allowPublicKeyRetrieval=true
# 數據庫賬號密碼(根據實際環境修改)
spring.datasource.username=root
spring.datasource.password=123456
參數說明:
  • serverTimezone=GMT%2b8:指定時區為北京時間(GMT+8),避免跨時區時間誤差。
  • allowMultiQueries=true:允許一條 SQL 執行多個語句(如批量插入)。
  • useSSL=false:禁用 SSL 連接(開發環境常用,生產環境需評估安全性)。

2. MyBatis 配置

# SQL 映射文件路徑(classpath 表示項目資源目錄)
mybatis.mapper-locations=classpath:mapper/*.xml
# 實體類包路徑(自動掃描該包下的類,無需寫全類名)
mybatis.type-aliases-package=com.example.springboot.entity
# MyBatis 全局配置
mybatis.configuration.map-underscore-to-camel-case=true  # 開啟駝峰命名映射(數據庫字段 user_name → 實體類 userName)
mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl  # 打印 SQL 日志(開發環境使用)

3. 通用 Mapper(tk.mybatis)配置

# 通用 Mapper 接口路徑(所有 DAO 接口需繼承此接口)
mapper.mappers=tk.mybatis.mapper.common.Mapper
# 非空判斷(插入/更新時自動過濾 null 值)
mapper.not-empty=true
# 主鍵自增策略(MySQL 適用)
mapper.identity=MYSQL

4. 服務端口配置

# 應用端口(默認 8080,若沖突可修改為其他端口,如 8090)
server.port=8080

三、application.yml 配置詳解(等價于 properties)

spring:application:name: springboot  # 應用名稱datasource:driver-class-name: com.mysql.cj.jdbc.Driver  # 數據庫驅動url: jdbc:mysql://localhost:3306/springboot?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false&serverTimezone=GMT%2b8&allowPublicKeyRetrieval=true  # 數據庫 URLusername: root  # 數據庫賬號password: 123456  # 數據庫密碼
mybatis:mapper-locations: classpath:mapper/*.xml  # SQL 映射文件路徑type-aliases-package: com.example.springboot.entity  # 實體類包路徑configuration:map-underscore-to-camel-case: true  # 駝峰命名映射log-impl: org.apache.ibatis.logging.stdout.StdOutImpl  # SQL 日志打印
mapper:mappers:- tk.mybatis.mapper.common.Mapper  # 通用 Mapper 接口not-empty: true  # 非空判斷identity: MYSQL  # 主鍵自增策略
server:port: 8080  # 服務端口
YAML 格式注意事項:
  • 縮進嚴格:使用空格縮進(2-4 個空格),禁止使用 Tab 鍵。
  • 冒號空格:鍵名后必須加空格再跟值(如 server: 后需有空格)。
  • 注釋符號:使用 # 注釋,與 properties 一致。

四、配置生效流程與驗證

1. 配置文件優先級

Spring Boot 會自動讀取以下位置的配置文件(優先級由高到低):

  1. src/main/resources/application.properties/.yml(項目內默認配置)
  2. 命令行參數(如 --server.port=8090
  3. 環境變量

2. 驗證配置是否生效

方式 1:啟動項目查看日志
  • 若控制臺打印 SQL 語句(如 ==> Preparing: SELECT * FROM user),說明 MyBatis 配置正確。
  • 若出現 JDBC Connection 相關錯誤,檢查數據庫驅動、URL、賬號密碼是否正確。
方式 2:訪問接口測試
  • 假設已編寫 Controller 接口(如 /users),訪問 http://localhost:8080/users,若返回數據庫中的用戶數據(如張三、李四),則配置成功。

五、常見問題與解決方案

1. 數據庫連接失敗

  • 現象:啟動時報 java.sql.SQLException: No suitable driver found

    • 原因:未添加 MySQL 驅動依賴或驅動類名錯誤(MySQL 8+ 需用 com.mysql.cj.jdbc.Driver)。
    • 解決:在 pom.xml 中添加 mysql-connector-java 依賴,并檢查驅動類名是否正確。
  • 現象Access denied for user 'root'@'localhost'

    • 原因:數據庫賬號或密碼錯誤。
    • 解決:核對 application.properties/.yml 中的 usernamepassword,確保與 MySQL 一致。

2. MyBatis 找不到 SQL 映射文件

  • 現象:啟動時報 Invalid bound statement (not found): com.example.dao.UserDao.getUser
    • 原因mapper-locations 路徑錯誤或 XML 文件未放在指定目錄。
    • 解決
      1. 確認 mapper 目錄位于 src/main/resources 下。
      2. 檢查 mapper-locations 路徑是否正確(如 classpath:mapper/*.xml)。

3. 時區警告(Optional)

  • 現象:控制臺輸出 The server time zone value '***' is unrecognized
    • 解決:在數據庫 URL 中添加 serverTimezone=GMT%2b8(已包含在示例配置中)。

六、兩種格式對比與選擇建議

維度application.propertiesapplication.yml
語法鍵值對(key=value),結構簡單YAML 格式,縮進層級分明,可讀性更強
復雜度適合簡單配置或對 YAML 不熟悉的開發者適合復雜層級配置(如嵌套對象)
兼容性所有 Spring Boot 版本支持需 Spring Boot 1.4+ 版本支持
推薦場景快速原型開發、簡單項目復雜項目、需要層級化配置的場景

建議:新項目優先使用 application.yml,享受更清晰的層級結構;若團隊對 YAML 不熟悉,可沿用 properties

通過以上配置,Spring Boot 項目即可通過 MyBatis 和 tk.mybatis 實現對 MySQL 數據庫的訪問,后續可繼續開發 Controller 層和前端界面,完成完整的 CRUD 功能。

修改application.properties文件或者application.yml文件
application.properties文件代碼

# 應用名稱
spring.application.name=springboot# 數據庫配
置
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/springboot?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false&serverTimezone=GMT%2b8&allowPublicKeyRetrieval=true
spring.datasource.username=root
spring.datasource.password=123456# MyBatis配置
mybatis.mapper-locations=classpath:mapper/*.xml
mybatis.type-aliases-package=com.example.springboot.entity
mybatis.configuration.map-underscore-to-camel-case=true
mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl# 通用Mapper配置
mapper.mappers=tk.mybatis.mapper.common.Mapper
mapper.not-empty=true
mapper.identity=MYSQL# 服務端口配置
server.port=8080

在這里插入圖片描述

或者application.yml文件代碼

# 應用名稱
spring:application:name: springboot# 數據庫配置datasource:driver-class-name: com.mysql.cj.jdbc.Driver
#    url: jdbc:mysql://localhost:3306/springboot?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=UTCurl: jdbc:mysql://localhost:3306/springboot?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false&serverTimezone=GMT%2b8&allowPublicKeyRetrieval=trueusername: rootpassword: 123456# MyBatis配置
mybatis:# mapper.xml文件位置mapper-locations: classpath:mapper/*.xml# 實體類包路徑,根據實際項目結構調整type-aliases-package: com.example.springboot.entityconfiguration:# 開啟駝峰命名轉換map-underscore-to-camel-case: true# 打印SQL語句,開發環境可開啟log-impl: org.apache.ibatis.logging.stdout.StdOutImpl# 通用Mapper配置
mapper:mappers:- tk.mybatis.mapper.common.Mappernot-empty: trueidentity: MYSQL# 服務端口配置
server:port: 8080

在這里插入圖片描述

II 《UserController 新增用戶查詢接口:實現數據庫數據獲取》

一、修改UserController代碼

新增內容:
UserController 中新增以下代碼,核心目標是通過 HTTP 接口從數據庫查詢用戶數據并返回

    @Autowired  // @Autowired 是 Spring 框架中的一個注解,用于自動注入依賴對象。它通常用于在 Spring 容器中獲取已經存在的 bean,并將其注入到當前 bean 中。private UserService userService; // userService是UserService接口的實例對象,通過@Autowired注解注入@GetMapping("/users")public List<User> getAllUsers() {return userService.getUser();}

代碼位置:
位于 com.example.controller.UserController 類中,與 @RestController@RequestMapping("user") 注解同級,作為請求處理的入口。。
在這里插入圖片描述

二、關鍵注解與代碼邏輯解析

1. @Autowired 注解
  • 作用
    通過 Spring 依賴注入機制,將 UserService 實例(封裝了數據庫訪問邏輯)注入控制器,使控制器能調用 UserService 中的方法操作數據庫。
  • 原理
    Spring 通過依賴注入(DI)機制,在控制器實例化時將 UserService 的 Bean 注入到 userService 變量中,避免手動創建對象,實現層間解耦。
  • 關鍵邏輯
    UserServiceUserDaoMyBatisMySQL 數據庫
    (服務層調用數據訪問層,數據訪問層通過 MyBatis 執行 SQL 查詢數據庫)
  • 注意
    • 需確保 UserService 類通過 @Service 注解聲明為 Spring Bean,否則注入失敗。
    • 若項目未掃描到 UserService,會拋出 NoSuchBeanDefinitionException 異常(需在啟動類中通過 @ComponentScan 包含該類所在包)。
2. @GetMapping("/users") 注解
  • 作用
    映射 HTTP GET 請求/users 路徑,結合類上的 @RequestMapping("user"),完整請求路徑為:

    http://localhost:8080/user/users  。  
    
  • 參數

    • /users:資源路徑,對應“查詢用戶列表”操作。
    • public List<User>:返回值為用戶列表,Spring 自動將其序列化為 JSON 格式(如 [User1, User2])。
3. 方法邏輯
public List<User> getAllUsers() {  return userService.getUser();  
}  

數據庫查詢觸發流程

  1. 客戶端請求:發送 GET 請求到 /user/users
  2. 控制器處理:調用 userService.getUser(),該方法內部執行以下步驟:
    • 服務層(UserService:調用 UserDaogetUser() 方法。
    • 數據訪問層(UserDao:通過 MyBatis 執行 SQL SELECT * FROM user 查詢數據庫(代碼見 UserDao 中的 @Select("SELECT * FROM user"))。
    • MyBatis 交互:將數據庫返回的結果集(ResultSet)自動映射為 User 實體類對象,封裝成 List<User>
  3. 結果返回:控制器將 List<User> 轉換為 JSON 格式,返回給客戶端,完成從數據庫獲取數據的全流程。

KK. 《用戶數據查詢功能驗證過程》

一、啟動 Spring Boot 項目

(一)操作步驟

在 IntelliJ IDEA 中打開 Spring Boot 項目,定位到帶有 @SpringBootApplication 注解的項目啟動類(通常為 SpringbootApplication.java )。點擊 IDEA 工具欄中的 Run 按鈕(綠色三角形圖標),或使用快捷鍵 Shift + F10 啟動項目。
在這里插入圖片描述

(二)預期結果

控制臺輸出項目啟動日志,包含以下關鍵信息:

  • 服務端口:如 Tomcat started on port(s): 8080 ,表明 Tomcat 服務器已啟動并監聽指定端口。
  • MyBatis 日志(若配置了 log-impl ):顯示 ==> Preparing: SELECT * FROM user 等 SQL 執行相關記錄,說明 MyBatis 配置生效,可操作數據庫。
  • 項目啟動成功提示:無數據庫連接失敗、類找不到等異常報錯,確保后續接口驗證可正常進行。

二、通過瀏覽器驗證接口功能

(一)操作步驟

打開瀏覽器(如 Chrome、Firefox 等),在地址欄輸入接口 URL:

http://localhost:8080/user/users  

說明

  • localhost:代表本地服務器,若項目部署在遠程服務器,需替換為對應服務器 IP。
  • 8080:項目端口,需與 application.propertiesapplication.yml 中配置的 server.port 保持一致。
  • user/users:接口路徑,由 UserController 類上的 @RequestMapping("user") 注解和方法上的 @GetMapping("/users") 注解組合而成。

(二)預期結果

在這里插入圖片描述

  • 響應數據:瀏覽器頁面顯示 JSON 格式的用戶數據,內容與數據庫 user 表中的記錄一致。示例響應如下:
[  {  "id": 1,  "name": "張三",  "password": "123456",  "age": 24,  "sex": "男 ",  "phone": "18888888888"  },  {  "id": 2,  "name": "李四",  "password": "123456",  "age": 25,  "sex": "女",  "phone": "19900009999"  }  
]  
  • 響應狀態碼:為 200 OK ,可通過瀏覽器開發者工具查看。按 F12 打開控制臺,切換到 Network 標簽頁,刷新頁面后,在請求列表中找到 http://localhost:8080/user/users 對應的請求,其“狀態”列會顯示 200 ,代表請求成功。
    在這里插入圖片描述

三、通過 IDEA 內置 HTTP 客戶端驗證(generated-requests.http

(一)功能背景

IDEA 提供內置 HTTP 客戶端工具,可直接在 IDE 內發送 HTTP 請求、查看響應,無需依賴外部工具(如瀏覽器、Postman )。“在 HTTP 客戶端中打開” 功能會自動生成對應接口的請求模板到 generated-requests.http 文件,簡化請求編寫流程。

(二)操作與驗證流程

  1. 觸發 “在 HTTP 客戶端中打開”
    UserController@GetMapping 注解方法旁(如 getAllUsers 方法 ),點擊出現的 “在 HTTP 客戶端中打開” 提示。IDEA 會自動創建/打開 generated-requests.http 文件,并生成對應接口的請求模板,格式如下:
    在這里插入圖片描述
GET http://localhost:8080/user/users  

作用:快速生成請求 URL,避免手動輸入,降低拼寫錯誤概率。

  1. 發送請求與查看響應
    打開 generated-requests.http 文件,點擊請求模板左側的綠色運行按鈕(三角形圖標 )發送 GET 請求。發送后,IDEA 底部會彈出 “服務” 面板(可通過 Alt + 8 喚起 ),展開 “HTTP 請求” 節點:
    在這里插入圖片描述
  • 請求記錄:能看到 generated-requests 的請求記錄,狀態顯示為 200 ,代表請求成功。
  • 詳細響應:點擊該請求記錄,右側會展示:
    • 響應體:直接顯示 JSON 格式的用戶數據,與瀏覽器訪問結果一致,包含數據庫中張三、李四等用戶信息列表。
    • 響應頭:可查看 Content-Type(通常為 application/json ,說明返回 JSON 數據 )、Status Code(狀態碼 200 )等信息,確認接口通信正常。
      在這里插入圖片描述
      在這里插入圖片描述

在這里插入圖片描述

  1. 與其他驗證方式對比優勢
  • 無需切換工具:在 IDE 內即可完成請求發送、響應查看,無需在瀏覽器、Postman 等工具間來回切換,提升開發效率。
  • 自動關聯代碼:通過代碼旁提示生成請求,請求 URL 與代碼路由實時同步。若修改代碼中的 @RequestMapping 等注解,再次觸發 “在 HTTP 客戶端中打開” 可更新請求模板,減少手動維護請求 URL 的成本。
  • 集成日志與調試:結合 IDEA 控制臺日志(如 MyBatis 的 SQL 執行日志 ),可在一個界面同時分析請求流程、數據庫操作、響應結果,便于定位問題(如 SQL 執行異常時,能快速關聯請求報錯與日志信息 )。

四、驗證關鍵點與異常處理

(一)關鍵點驗證

  1. 數據庫連通性:接口能返回數據,說明項目已成功連接到 MySQL 數據庫,并執行了 SELECT * FROM user 查詢,數據庫訪問鏈路通暢。
  2. MyBatis 映射正確性:數據庫字段(如 idname )需正確映射到 User 實體類屬性,無字段缺失或類型錯誤(如年齡 age 應顯示為數字,而非字符串 ),保證數據格式符合預期。
  3. 接口路徑正確性:路徑 user/users 需正確匹配控制器中的路由配置,若訪問時返回 404 Not Found ,則說明路徑配置可能有誤,需確認控制器類的 @RequestMapping("user") 注解是否正確。

(二)異常場景處理

  1. 端口沖突:若啟動項目時提示 Port 8080 is already in use ,需修改 application.propertiesapplication.yml 中的 server.port 為其他端口(如 8090 ),重新啟動項目。
  2. 數據庫連接失敗
    • 控制臺報錯 Access denied for user 'root'@'localhost' :檢查 application.propertiesapplication.yml 中數據庫賬號密碼配置(spring.datasource.username/password ),確保與實際數據庫賬號密碼一致。
    • 報錯 No suitable driver found :檢查 pom.xml 文件,確認已添加 MySQL 驅動依賴(mysql-connector-java ),保證項目能連接數據庫。
  3. 接口路徑錯誤:若輸入 http://localhost:8080/users(缺少 user 前綴 )返回 404 ,需確認控制器類的 @RequestMapping("user") 注解配置是否正確,保證接口路徑組合無誤。
  4. 請求無響應/報錯(IDE 內置 HTTP 客戶端)
    • 檢查項目是否啟動:確認 Spring Boot 應用已通過 Run 按鈕啟動,且控制臺無啟動報錯。若項目未啟動,請求會因連接不到服務端而失敗。
    • 核對請求 URL:確認 generated-requests.http 中的 URL 與實際服務端口、路徑一致。若修改過 server.port 或控制器注解路徑,需重新觸發 “在 HTTP 客戶端中打開” 更新模板。
  5. 響應亂碼或格式異常
    • 檢查編碼配置:確保 application.properties/application.yml 中配置了字符集(如 spring.http.encoding.charset = UTF-8 ),且數據庫連接 URL 中設置了 useUnicode = true&characterEncoding = utf-8 ,避免因編碼不一致導致響應亂碼。
    • 確認實體類映射:若響應 JSON 字段缺失或類型錯誤,檢查 User 實體類字段是否與數據庫表字段正確映射(如采用駝峰命名、通過 @Column 注解配置 ),確保 MyBatis 能正確轉換結果集。

五、驗證工具擴展(非瀏覽器、非 IDE 內置方式 )

(一)Postman 驗證(推薦)

  1. 操作步驟:打開 Postman,選擇 GET 請求,輸入 URL http://localhost:8080/user/users ,點擊 Send 發送請求。
  2. 優勢:清晰顯示響應狀態碼、響應頭和響應體;支持保存請求歷史,方便后續重復測試與接口管理。

(二)curl 命令驗證(命令行)

  1. 操作步驟:在終端輸入以下命令:
curl http://localhost:8080/user/users  
  1. 預期結果:終端輸出與瀏覽器一致的 JSON 數據,可快速在命令行環境驗證接口功能。

六、總結

通過以上多種方式(瀏覽器、IDEA 內置 HTTP 客戶端、Postman、curl ),從不同維度驗證了 UserController/user/users 接口的功能正確性:

  1. 項目啟動正常:Spring Boot 應用成功啟動,Tomcat 服務器監聽指定端口,各依賴組件(如 MyBatis )配置生效。
  2. 接口響應正確:無論是瀏覽器、IDE 內置工具還是外部工具(Postman、curl ),都能正確獲取數據庫中的用戶數據,返回 JSON 格式內容,且響應狀態碼為 200 ,表明接口通信與數據查詢正常。
  3. 依賴鏈路完整:從控制器 → 服務層 → 數據訪問層 → 數據庫的全流程無異常,各層通過依賴注入、注解配置等方式協作順暢,保障了數據庫查詢功能的可用性,為后續用戶新增、修改、刪除等接口開發奠定可靠基礎。

代碼

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

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

相關文章

【C++高級主題】多重繼承下的類作用域

目錄 一、類作用域與名字查找規則&#xff1a;理解二義性的根源 1.1 類作用域的基本概念 1.2 單繼承的名字查找流程 1.3 多重繼承的名字查找特殊性 1.4 關鍵規則&#xff1a;“最近” 作用域優先&#xff0c;但多重繼承無 “最近” 二、多重繼承二義性的典型類型與代碼示…

登錄vmware vcenter報vSphere Client service has stopped working錯誤

一、問題 登錄vmware vcenter時發現報vSphere Client service has stopped working錯誤&#xff0c;導致vcenter控制臺進不去 二、解決辦法 打開vmware vcenter管理https://vcenterIP:5480&#xff0c;選擇VMware vSphere Client&#xff0c;重啟該服務后恢復正常。

MySQL關系型數據庫學習

學習參考鏈接&#xff1a;https://www.runoob.com/mysql/mysql-tutorial.html Windows 安裝MYSQL服務端的步驟&#xff1a;https://www.runoob.com/w3cnote/windows10-mysql-installer.html 1. 概念學習 MySQL 是一種關聯數據庫管理系統&#xff0c;關聯數據庫將數據保存在不…

web攻防之SSTI 注入漏洞

知識簡介 &#xff1a; 模版引擎和框架的區別 ssti的中文翻譯 &#xff1a; 服務端的模版的注入 模版引擎 &#xff1a;前端的用于裝飾優化html的模版 最簡單的就是在騰訊會議中的聊天功能 框架 &#xff1a; 這個是一套獨立存在的邏輯 如TP他是一個區別于php語法的后端邏輯…

【清晰教程】利用Git工具將本地項目push上傳至GitHub倉庫中

Git 是一個分布式版本控制系統&#xff0c;由 Linus Torvalds 創建&#xff0c;用于有效、高速地處理從小到大的項目版本管理。GitHub 是一個基于 Git 的代碼托管平臺&#xff0c;提供了額外的協作和社交功能&#xff0c;使項目管理更加高效。它們為項目代碼管理、團隊協作和持…

極簡以太彩光網絡解決方案4.0正式發布,“彩光”重構園區網絡極簡之道

5月28日下午,銳捷網絡在京舉辦以“光,本該如此‘簡單’”為主題的發布會,正式發布極簡以太彩光網絡解決方案4.0。作為“彩光”方案的全新進化版本,極簡以太彩光4.0從用戶需求出發,聚焦場景洞察,開啟了一場從底層基因出發的極簡革命,通過架構、部署、運維等多維度的創新升級,以強…

Selenium 中 JavaScript 點擊的優勢及使用場景

*在 Selenium 自動化測試中&#xff0c;使用 JavaScript 執行點擊操作&#xff08;如driver.execute_script("arguments[0].click();", element)&#xff09;相比直接調用element.click()有以下幾個主要優勢&#xff1a; 1. 繞過元素不可點擊的限制 問題場景&#x…

CppCon 2014 學習:Cross platform GUID association with types

類型的 GUID&#xff08;全局唯一標識符&#xff09; 是在 COM 編程&#xff08;Component Object Model&#xff09; 和某些大型 C 架構&#xff08;如 Office、DirectX、跨 DLL 接口&#xff09;中關聯類型信息和實現運行時類型識別與動態接口查詢的重要機制。 下面我們分層解…

Android 11以上App主動連接WIFI的完整方案

早期Android版本App內連接指定的WIFI還是比較簡單的&#xff0c;但是隨著Android版本的提升&#xff0c;限制也越來越多。以下是一套完整的Android 11以上的WIFI應用內主動連接方案。 第一步&#xff1a;添加到建議連接&#xff1a; val wifiManager getSystemService(WIFI_…

讓AI彈琴作曲不再是夢:Python+深度學習玩轉自動化音樂創作

讓AI彈琴作曲不再是夢:Python+深度學習玩轉自動化音樂創作 一、AI也能譜出動人的旋律?真不是科幻! 還記得小時候學鋼琴時老師的那句經典:“感覺不到情緒的樂句,是沒靈魂的。” 當時我一邊練琴一邊想:要是有個機器能幫我寫譜、調性又不跑調就好了! 結果幾年后,真被我碰…

機器學習:集成學習概念、分類、隨機森林

本文目錄&#xff1a; 一、集成學習概念**核心思想&#xff1a;** 二、集成學習分類&#xff08;一&#xff09;Bagging集成&#xff08;二&#xff09;Boosting集成(三&#xff09;兩種集成方法對比 三、隨機森林 一、集成學習概念 集成學習是一種通過結合多個基學習器&#…

YOLO機械臂丨使用unity搭建仿真環境,YOLO算法識別,Moveit2控制

文章目錄 前言搭建開發環境在window中安裝Unity創建Docker容器&#xff0c;并安裝相關軟件運行測試改進添加刪除節點前的函數調用 報錯?框選節點的時候報錯?如果無法控制機械臂&#xff0c;查看rviz2的終端&#xff0c;應該會有?規劃路徑超出范圍 參考 前言 本項目介紹通過…

Docker 插件生態:從網絡插件到存儲插件的擴展能力解析

Docker 容器技術以其輕量、快速、可移植的特性,迅速成為構建和部署現代應用的核心工具。然而,盡管 Docker Engine 自身功能強大,但在面對多樣化的生產環境和復雜業務需求時,僅靠核心功能往往無法滿足所有場景。 例如,跨主機的容器網絡通信、異構存儲系統的持久化數據管理…

飛牛fnNAS使用群輝DSM系統

目錄 一、Virtual DSM簡介 二、在飛牛NAS中安裝 1、激活Docker 2、建立路徑 3、創建Compose項目 4、容器啟動 (1)構建容器 (2)容器啟動 5、查看日志 6、登錄DSM地址 7、安裝完成 8、安裝套件示例 9、遠程訪問 10、測試 (1)PC瀏覽器創建筆記 (2)手機創建…

關于FPGA軟核的仿真(一)

MicroBlaze是Xilinx專為FPGA設計的軟核處理器&#xff0c;其本質是通過FPGA的可編程邏輯資源&#xff08;如查找表LUT、觸發器Flip-Flop&#xff09;動態構建的處理器架構&#xff0c;其本質為搭建處理器電路。MicroBlaze上運行嵌入式C代碼程序&#xff0c;通過CoreConnect總線…

戶外攝像頭監控如何兼顧安全實時監控

一、技術手段提升隱私安全性 硬件與功能設計 采用支持隱私保護技術的設備&#xff0c;例如帶電子開關的攝像頭&#xff08;可遠程控制攝像頭啟閉&#xff09;3&#xff0c;或搭載本地AI算法的設備&#xff0c;僅識別人形、車輛等目標&#xff0c;減少無關信息采集。 使用安全…

【C#朗讀文本DLL動態按鈕控件組及按鈕事件文本框拖放數據】2022-1-21

緣由https://bbs.csdn.net/topics/604357098 DotNetSpeech.dll下載_DotNetSpeech.dll免費版下載 - 系統之家 dotnetspeech.dll 64下載-dotnetspeech.dll下載 v10.2 官方版-IT貓撲網 下載了一個DotNetSpeech.dll&#xff0c;放到 \bin\Debug里&#xff0c;添加引用&#xff0c;…

<5>, Qt系統相關

目錄 一、Qt 事件 1&#xff0c;事件的定義 2&#xff0c;事件的處理 3&#xff0c;鼠標事件 4&#xff0c;按鍵事件 5&#xff0c;定時器 6&#xff0c;事件分發器 7&#xff0c;事件過濾器 二、Qt 文件 1&#xff0c;輸入輸出類 2&#xff0c;文件讀寫類 3&#x…

WordPress主題代碼優化深度指南

引言&#xff1a;為何主題優化至關重要 WordPress作為全球最流行的內容管理系統&#xff0c;其性能表現直接關系到用戶體驗和網站成功。主題代碼優化不僅能夠&#xff1a; 提升頁面加載速度&#xff08;Google研究表明&#xff0c;頁面加載時間每增加1秒&#xff0c;跳出率增加…

數據結構第6章 圖(竟成)

第 6 章 圖 【考綱內容】 1.圖的基本概念 2.圖的存儲及基本操作&#xff1a;(1) 鄰接矩陣法&#xff1b;(2) 鄰接表法&#xff1b;(3) 鄰接多重表、十字鏈表 3.圖的遍歷&#xff1a;(1) 深度優先搜索&#xff1b;(2) 廣度優先搜索 4.圖的基本應用&#xff1a;(1) 最小 (代價) 生…