配置開發環境


安裝與配置JDK

檢查電腦是否已經安裝好JDK(Java Development Kit) 是Java開發的核心工具包,需優先安裝。

下載Java開發工具包

  • 訪問 Oracle 官網(https://www.oracle.com/java/technologies/downloads/)或 OpenJDK 分發平台(如 Adoptium,推薦,免費開源)。
  • Windows:雙擊安裝包,按提示操作,建議自定義安裝路徑(如 D:\Program Files\Java\jdk1.8.0_301),避免中文或空格路徑。
  • macOS:雙擊 .dmg 文件,拖拽到 Applications 文件夾,或使用命令行工具(如 Homebrew:brew install openjdk@11)。
  • Linux:通過包管理器(如 Ubuntu 用 sudo apt install openjdk-11-jdk),或解壓 .tar.gz 到指定目錄(如 /usr/local/jdk11)。

配置JDK環境變量(Windows)

  • 打開“控制面板” -> “系統和安全” -> “系統”。
  • 點擊“高級系統設置”鏈接,打開“系統屬性”窗口。
  • 在“系統屬性”窗口中,點擊“環境變量”按鈕。
  • 在“環境變量”窗口中,找到“系統變量”部分,點擊“新建”按鈕。
  • 輸入變量名為JAVA_HOME,變量值為JDK的安裝路徑(例如:C:\Program Files\Java\jdk17)。
  • 找到“系統變量”中的“Path”變量,點擊“編輯”按鈕。
  • 在“編輯環境變量”窗口中,點擊“新建”按鈕。
  • 輸入變量值為%JAVA_HOME%\bin
  • 依次點擊“確定”保存所有設置。
驗證安裝是否成功:

打開命令提示符或終端窗口,並運行以下命令來驗證JDK是否正確安裝:

java -version
javac -version

如果能正確顯示Java版本信息,就説明JDK安裝成功了

JDK下載安裝及配置環境變量(圖文介紹):

安裝與配置Maven

下載構建工具(Maven)

Spring Boot支持多種構建工具,如Maven和Gradle。你可以選擇其中一個構建工具進行項目的管理和依賴管理。確保已經正確安裝並配置了所選的構建工具。

下載及配置環境變量

下載及安裝Maven

  • 訪問官網(https://maven.apache.org/download.cgi),下載最新版二進制壓縮包(如 apache-maven-3.9.6-bin.zip)。
  • 將下載的Maven二進制壓縮包解壓到任意位置。建議解壓到一個穩定、不易更改的目錄中,例如 /usr/localC:\Program Files

配置Maven環境變量

  • 打開“控制面板” -> “系統和安全” -> “系統”。
  • 點擊“高級系統設置”鏈接,打開“系統屬性”窗口。
  • 在“系統屬性”窗口中,點擊“環境變量”按鈕。
  • 在“環境變量”窗口中,找到“系統變量”部分,點擊“新建”按鈕。
  • 輸入變量名為MAVEN_HOME,變量值為Maven解壓所在的絕對路徑(例如:C:\apache-maven-3.8.8)。
  • 找到“系統變量”中的“Path”變量,點擊“編輯”按鈕。
  • 在“編輯環境變量”窗口中,點擊“新建”按鈕。
  • 輸入變量值為%MAVEN_HOME%\bin
  • 依次點擊“確定”保存所有設置。
檢查是否正確安裝

打開命令提示符或終端窗口,並運行以下命令來驗證Maven是否正確安裝:

mvn -version

如果能正確顯示對應安裝的Maven版本信息即為安裝成功

Maven下載安裝及配置環境變量(圖文介紹):

配置Maven倉庫(優化)

默認倉庫在 C 盤(Windows)或用户目錄,建議修改為自定義路徑並配置國內鏡像(加速依賴下載):

  • 打開 Maven 安裝目錄下的 conf/settings.xml
  • 修改本地倉庫路徑:在 <settings> 標籤內添加:<localRepository>D:\maven-repo</localRepository>(替換為自定義路徑)。
  • 配置阿里雲鏡像:在 <mirrors> 標籤內添加:
<mirror>
  <id>aliyunmaven</id>
  <mirrorOf>*</mirrorOf>
  <name>阿里雲公共倉庫</name>
  <url>https://maven.aliyun.com/repository/public</url>
</mirror>

安裝與配置IDEA

下載編譯工具(IDEA)

如果你使用集成開發環境(IDE)進行開發,可以選擇適合你的IDE,並確保已正確配置。一些常用的IDE包括Eclipse、IntelliJ IDEA和Visual Studio Code等

下載及安裝IDEA

  • Windows:雙擊安裝包,勾選「64-bit launcher」「Add launchers dir to PATH」(方便命令行啓動),選擇安裝路徑,點擊「Install」。
  • macOS:雙擊 .dmg 文件,拖拽到 Applications 文件夾。
  • Linux:解壓 .tar.gz 到目錄(如 /opt/idea),運行 bin/idea.sh 啓動。
  • 下載IntelliJ IDEA:訪問JetBrains官方網站:https://www.jetbrains.com/zh-cn/idea/download/?section=windows
  • 安裝IntelliJ IDEA:下載完成後,運行安裝包,按照提示完成安裝過程。在安裝嚮導中,你可以選擇安裝位置和其他選項。
  • 啓動IntelliJ IDEA:安裝完成後,通過桌面上的快捷方式或啓動菜單中的圖標,打開IntelliJ IDEA。
  • 激活IntelliJ IDEA:當IntelliJ IDEA第一次啓動時,會出現歡迎界面。你可以選擇 “Evaluate for free” 或 “Activate” 進行激活。如果你選擇 “Evaluate for free”,你可以免費試用30天。如果你選擇 “Activate”,則需要進行激活。
  • 獲取激活碼:你可以通過購買IntelliJ IDEA許可證獲得正式激活碼,或者使用免費的學生許可證。你可以在JetBrains官方網站上獲取詳細信息。
  • 輸入激活碼:當你獲得了激活碼後,在激活界面中輸入激活碼,然後點擊 “Activate” 進行激活。
  • 完成激活:如果你輸入的激活碼有效且正確,IntelliJ IDEA將完成激活過程。之後,你就可以開始使用IntelliJ IDEA進行開發工作了。
      操作文檔(圖文介紹):

配置IDEA

  • 關聯 JDK:進入「File → Project Structure → SDKs」,點擊「+」選擇已安裝的 JDK 路徑(如 D:\Program Files\Java\jdk1.8.0_301),IDEA 會自動識別。
  • 關聯 Maven:進入「File → Settings → Build, Execution, Deployment → Build Tools → Maven」:
  • Maven home path:選擇本地 Maven 安裝路徑(如 D:\Program Files\apache-maven-3.9.6)。
  • User settings file:選擇 Maven 的 conf/settings.xml(如 D:\Program Files\apache-maven-3.9.6\conf\settings.xml)。
  • Local repository:會自動讀取 settings.xml 中的本地倉庫路徑,無需手動修改。
驗證配置
  1. 打開 IDEA,點擊「New Project」→ 選擇「Maven」,勾選「Create from archetype」(可選,如用 maven-archetype-quickstart 創建基礎項目)。
  2. 填寫項目名稱、路徑,選擇 JDK 版本,點擊「Next」→「Finish」。
  3. 等待 Maven 初始化完成(右下角進度條),若依賴下載順利(無紅色報錯),則説明 JDK、Maven、IDEA 配置成功。

通過以上步驟,即可完成 Java 開發環境的搭建,開始進行項目開發。

快速搭建SpringBoot項目

創建Maven項目

  1. 打開 IntelliJ IDEA,選擇 "File" -> "New" -> "Project"。
  2. 在左側面板中選擇 "Maven",然後點擊 "Next
  3. 在 "Project SDK" 中選擇你想要使用的 JDK 版本,然後點擊 "Next"。
  4. 在 對話框中,配置項目的基本信息:
  1. Group: 設置項目的 GroupId,例如 com.lzzy
  2. Artifact: 設置項目的唯一標識符,一般和項目名相同,例如 my-spring-boot1
  3. Name: 設置項目的名稱
  4. Version:使用默認生成的版本號
  1. 創建完成後會默認打開Maven項目生成的pom.xml依賴文件。

添加SpringBoot相關依賴

編輯項目的pom.xml文件,添加SpringBoot相關的依賴

<dependencies>
    <!-- Spring Boot Starter -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
    </dependency>

    <!-- Spring Boot Web Starter -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>

編寫主程序啓動類

創建一個 Spring Boot 應用程序的主類,通常命名為 Application.java,包含 main 方法。這個類將作為應用程序的入口點:(默認項目已經創建好了)

package com.example;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication//這個註解是標註一個Spring Boot應用
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

}

創建用於Web請求的處理控制類

創建一個 Spring Boot 應用程序的主類,通常命名為 Application.java,包含 main 方法。這個類將作為應用程序的入口點:(默認項目已經創建好了)

package com.lzzy.controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController//該註解為組合註解,等同於Spring中@Controller+@ResponseBody註解
@RequestMapping("/hello")//默認為 GET 方法的路由 /hello
public class HelloController {

    @GetMapping//用於定義HTTP GET請求的URL路徑
    public String hello() {
        return "Hello, world!";
    }
}

運行啓動項目

運行 Spring Boot 應用程序:右鍵點擊 Application 類,選擇 "Run Application.main()",或者點擊類上方的綠色三角形按鈕。

打開瀏覽器,並訪問 http://localhost:8080/hello,你將會看到輸出 Hello, world!

各個層級之間的關係

Dao層是什麼?

DAO(Data Access Object) 模型就是寫一個類,把訪問數據庫的代碼封裝起來,DAO在數據庫與業務邏輯(Service)之間。

Dao是數據訪問層,Dao的作用是封裝對數據庫的訪問:增刪改查,不涉及業務邏輯,只是達到按某個條件獲得指定數據的要求。

採用DAO模式,建立實體類和數據庫表映射(ORM映射)。也就是哪個類對應哪個表,哪個屬性對應哪個列。持久層的目的就是,完成對象數據和關係數據的轉換。

Entity層是什麼?

Entity層,顧名思義就是實體層,放置一個個實體,及其相應的set、get方法。如果想要對數據庫進行一些操作(比如説讀取)的話,就要先寫entity層。

Service層是什麼?

Service被稱作業務邏輯層。顧名思義,它處理邏輯上的業務,而不去考慮具體的實現。

至於為什麼service層要使用接口來定義有以下幾點好處:

在java中接口是多繼承的,而類是單繼承的,如果你需要一個類實現多個service,你用接口可以實現,用類定義service就沒那麼靈活。

要提供不同的數據庫的服務時,我們只需要面對接口用不同的類實現即可,而不用重複地定義類。

Servlet層是什麼?

Servlet(Server Applet)是Java Servlet的簡稱,是為小服務程序或服務連接器,用Java編寫的服務器端程序,主要功能在於交互式地瀏覽和修改數據,生成動態Web內容。

Utils層是什麼?

Util是utiliy的縮寫,是一個多功能、基於工具的包。如字符串處理、日期處理等,(建立數據庫之間的連接),是通用的、與業務無關的,可以獨立出來,可供其他項目使用。

MVC 模型

MVC模式是軟件工程中常見的一種軟件架構模式,該模式把軟件系統(項目)分為三個基本部分:模型(Model)、視圖(View)和控制器(Controller)。

使用MVC模式有很多優勢,例如:簡化後期對項目的修改、擴展等維護操作;使項目的某一部分變得可以重複利用;使項目的結構更加直觀。

具體來講,MVC模式可以將項目劃分為模型(M)、視圖(V)和控制器(C)三個部分,並賦予各個部分不同的功能,方便開發人員進行分組。

模型層(model)

模型持有所有的數據、狀態和程序邏輯。模型接受視圖數據的請求,並返回最終的處理結果。

控制層(controller)

可以理解為一個分發器,用來決定對於視圖發來的請求,需要用哪一個模型來處理,以及處理完後需要跳回到哪一個視圖。即用來連接視圖和模型。和SpringBoot相似,也可將service寫在這個裏面。

實際開發中,通常用控制器對客户端的請求數據進行封裝(如將form表單發來的若干個表單字段值,封裝到一個實體對象中),然後調用某一個模型來處理此請求,最後再轉發請求(或重定向)到視圖(或另一個控制器)。

視圖層(view)

負責界面的顯示,以及與用户的交互功能,例如表單、網頁等。

MVC模式的流程如下:瀏覽器通過視圖向控制器發出請求,控制器接收到請求之後通過選擇模型進行處理,處理完請求以後再轉發到視圖,進行視圖界面的渲染並做出最終響應,如圖所示。

在MVC模式中,視圖View可以用JSP/HTML/CSS實現,模型Model可以用JavaBean實現,而控制器Control就可以用Servlet來實現。

SpringBoot整合持久性框架(Mybatis-plus舉例)

軟件安裝

注意:安裝時需要設置用户名和密碼,請把用户名設置為root,密碼要牢記!

navicat安裝教程

前期準備
  1. 確認系統要求:確保電腦滿足最低配置,Windows 系統需為 Windows 10 及以上,macOS 需為 macOS 10.15 及以上。
  2. 獲取安裝包:建議從 Navicat 官方網站(https://www.navicat.com.cn/)下載,避免從第三方不明鏈接獲取,防止惡意軟件。
  3. 關閉安全軟件:安裝過程中可能會觸發防火牆或殺毒軟件攔截,暫時關閉可減少安裝報錯。
Windows 系統安裝步驟
  1. 運行安裝包:找到下載的 .exe 格式安裝包,雙擊啓動,彈出安裝嚮導後點擊「下一步」。
  2. 同意許可協議:閲讀用户許可協議,勾選「我接受許可協議中的條款」,點擊「下一步」。
  3. 選擇安裝路徑:默認路徑為 C:\Program Files\PremiumSoft\Navicat Premium 16,可點擊「瀏覽」自定義路徑(建議避免中文路徑),然後點擊「下一步」。
  4. 選擇附加任務:根據需求勾選「創建桌面快捷方式」「創建快速啓動欄快捷方式」,點擊「下一步」。
  5. 開始安裝:確認所有設置無誤後,點擊「安裝」,等待進度條完成,最後點擊「完成」即可。
macOS 系統安裝步驟
  1. 解壓安裝包:下載的安裝包為 .dmg 格式,雙擊打開後,會出現一個包含應用圖標的窗口。
  2. 拖拽安裝:將「Navicat Premium 16」圖標直接拖拽到右側「應用程序」文件夾中,完成複製安裝。
  3. 解決 “無法打開” 問題:首次打開若提示 “無法打開,因為它來自身份不明的開發者”,可前往「系統設置 - 隱私與安全性」,在底部點擊「仍要打開」,確認後即可啓動軟件。
激活與初始化
  1. 啓動軟件:從桌面或應用程序文件夾中打開 Navicat,首次啓動會彈出激活窗口。
  2. 輸入激活信息:若已購買正版,輸入購買時獲取的「序列號」或「激活碼」,點擊「激活」;若需試用,選擇「試用」,可免費使用 14 天。
  3. 初始化設置:激活後進入軟件,可選擇默認界面語言(支持中文)、設置默認字體等,完成後即可開始連接數據庫(如 MySQL、SQL Server 等)。

Mybatis-Plus

Mybatis-Plus介紹

Mybatis-plus官網:https://baomidou.com/getting-started/

MyBatis-Plus是基於MyBatis的一個開源持久層框架,它擴展了MyBatis的功能,提供了一些實用的特性和工具,幫助開發人員快速、高效地編寫SQL語句並操作數據庫。

MyBatis-Plus提供了許多實用的功能,包括代碼生成器、分頁插件、性能分析插件、邏輯刪除、多租户支持、樂觀鎖、自動填充、全局配置等等。這些功能都可以簡化開發人員對數據庫的操作,並提高開發效率。

其中,代碼生成器可以幫助開發人員快速生成MyBatis-Plus的實體類、Mapper接口以及xml文件,可以大大減少開發人員的工作量。分頁插件可以處理分頁查詢的各種情況,包括多表連接查詢和子查詢等,使得分頁查詢變得更加方便;性能分析插件可以在開發過程中檢查和改善查詢性能,提高程序的響應速度。

Mybatis特性

  • 無侵入:只做增強不做改變,引入它不會對現有工程產生影響,如絲般順滑
  • 損耗小:啓動即會自動注入基本 CURD,性能基本無損耗,直接面向對象操作
  • 強大的 CRUD 操作:內置通用 Mapper、通用 Service,僅僅通過少量配置即可實現單表大部分 CRUD 操作,更有強大的條件構造器,滿足各類使用需求
  • 支持 Lambda 形式調用:通過 Lambda 表達式,方便的編寫各類查詢條件,無需再擔心字段寫錯
  • 支持主鍵自動生成:支持多達 4 種主鍵策略(內含分佈式唯一 ID 生成器 - Sequence),可自由配置,完美解決主鍵問題
  • 支持 ActiveRecord 模式:支持 ActiveRecord 形式調用,實體類只需繼承 Model 類即可進行強大的 CRUD 操作
  • 支持自定義全局通用操作:支持全局通用方法注入( Write once, use anywhere )
  • 內置代碼生成器:採用代碼或者 Maven 插件可快速生成 Mapper 、 Model 、 Service 、 Controller 層代碼,支持模板引擎,更有超多自定義配置等您來使用
  • 內置分頁插件:基於 MyBatis 物理分頁,開發者無需關心具體操作,配置好插件之後,寫分頁等同於普通 List 查詢
  • 分頁插件支持多種數據庫:支持 MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、Postgre、SQLServer 等多種數據庫
  • 內置性能分析插件:可輸出 Sql 語句以及其執行時間,建議開發測試時啓用該功能,能快速揪出慢查詢
  • 內置全局攔截插件:提供全表 delete 、 update 操作智能分析阻斷,也可自定義攔截規則,預防誤操作

Spring Boot整合Mybatis-plus

依賴配置

添加對應版本的SpringBoot依賴,如果產生不兼容可以調整版本號

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.7.17</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

創建項目,添加Mybatis-plus相關依賴

如果是SpringBoot2添加依賴

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.5.14</version>
</dependency>

如果是SpringBoot3添加依賴

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-spring-boot3-starter</artifactId>
    <version>3.5.14</version>
</dependency>

修改或添加配置文件application.properties相關配置內容

mybatis-plus.mapper-locations=classpath:mapper/*.xml
# (標黃部分改成自己項目的實體類路徑)
mybatis-plus.type-aliases-package=com.example.testdemo.entity

代碼內容

創建實體類User
@Data
@TableName("user")
public class User {
    private int id;
    private String name;
    private int age;
    private String sex;
}
創建Mapper接口UserMapper

創建Mapper接口,此接口只要繼承MyBatis-Plus基本配置接口BaseMapper即可。

@Mapper
public interface UserMapper extends BaseMapper<User>{}
創建服務層接口和實現類UserService
  1. 創建服務層接口UserService
public interface UserService{
    public List<User> getAllUsers();
}
  1. 創建服務層實現類UserServiceImpl
@Service
public class UserServiceImpl implements UserService{
    @Autowired
    private UserMapper userMapper;
    @Override
    public List<User> getAllUsers() {
        System.out.println("------------------");
        List<User> userList = userMapper.selectList(null);
        for(User user:userList){
            System.out.println(user);
        }
        return userList;
    }
}
創建測試類userTests
@SpringBootTest
class UserTests {
    @Autowired
    private UserMapper userMapper;
    @Autowired
    private UserService userService;
    //測試userMapper中的fingById方法
    @Test
    void contextLoads() {
        User byId = userMapper.selectById(1);
        System.out.println(byId);
    }
    //測試服務類userService中的getAllUser方法
    @Test
    void test1(){
        List<User> allUsers = userService.getAllUsers();
        System.out.println(allUsers);
    }
}
創建控制類UserController
@RestController
@RequestMapping("/user")
public class UserController {
    @Autowired
    private UserService userService;
    @GetMapping("/getAllUsers")
    public List<User> getAllUsers(){
        return userService.getAllUsers();
    }
}
運行主程序啓動類:訪問http://localhost:8080/user/getAllUsers

第01課:Spring Boot開發環境搭建和項目啓動 -九五小龐_#java

MySQL數據庫操作

創建數據表
-- 創建user表,包含id,name,age,sex
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
  `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id',
  `name` varchar(50) DEFAULT NULL COMMENT '姓名',
  `age` int DEFAULT NULL COMMENT '年齡',
  `sex` char DEFAULT NULL COMMENT '性別',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
添加內容
-- 導入三條數據
INSERT INTO `user` VALUES ('1', 'jack', '18', '男');
INSERT INTO `user` VALUES ('2', 'mike', '20', '男');
INSERT INTO `user` VALUES ('3', 'lili', '21', '女');