將 Spring Boot 與 MySQL 連接

王林
發布: 2024-07-18 11:05:19
原創
1175 人瀏覽過

大家好,

在本教程中,我將解釋將 Spring Boot 與 MySQL 連接的過程,以便為我的前端建立 API。

先決條件:

  • IDE(我使用 Intellij IDEA,所以本教學將基於此)

  • MySql 工作台

點這裡取得原始碼。

使用 Spring Initializr 建立 Spring Boot 項目

造訪 start.spring.io 並選擇:
項目:Maven
語言:Java
春季啟動:3.3.0
在必要的欄位中寫入您的內容
包裝:罐裝
爪哇:17

至於依賴項,我們需要:

  • MySQL 驅動程式

  • Spring Web

  • Spring Data JPA

在這些之後,initializr 應如下所示:

Image description

按一下「產生」並將資料夾保存在您所需的路徑中並提取資料夾的內容。

Intellij 和 Mysql 配置

先在MySQL中建立一個資料庫。我為此使用了 MySQL Workbench。

即使是最簡單的資料庫也可以工作,就像這樣:

Image description

在所需的 IDE 中開啟資料夾的內容。我將使用 Intellij IDEA 介紹本教學。

開啟位於 scr/resources/application.properties 的 application.properties 檔案

在此文件中,我們配置有助於連接資料庫的設定。

將這些設定寫入檔案:

Image description

將 ${DB_NAME}、${DB_USER}、${DB_PASSWORD} 替換為您的資料庫憑證。

這些設定將幫助我們連接我們建立的資料庫:

spring.jpa.show-sql=true:

登入後複製

這可以記錄 Hibernate 產生的 SQL 語句。當設定為 true 時,Hibernate 會將 SQL 語句印到控制台。

spring.jpa.hibernate.ddl-auto=update:

登入後複製

此設定用於自動更新資料庫架構以符合實體定義。值更新表示 Hibernate 將更新現有架構,並新增實體對映所需的任何新欄位或表格。

logging.level.org.hibernate.SQL=DEBUG:

登入後複製

這會將 Hibernate SQL 記錄器的日誌記錄等級設為 DEBUG。它將提供有關正在執行的 SQL 語句的詳細資訊。

logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE:

登入後複製

這將 Hibernate 類型描述符 SQL 綁定器的日誌記錄等級設定為 TRACE。這將記錄有關 SQL 語句中參數綁定的詳細資訊。

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver:

登入後複製

這指定 MySQL 的 JDBC 驅動程式類別名稱。它告訴 Spring Boot 使用哪個驅動程式來建立與資料庫的連線。

spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQLDialect:
登入後複製

這將 Hibernate 方言設定為 MySQLDialect,它針對 MySQL 進行了最佳化。它允許 Hibernate 產生與 MySQL 相容的 SQL 語句。

現在,在專案的主包中建立一個子包,並將其命名為「model」。在裡面,創建一個類,按照你想要的方式調用它,在我的例子中,我將其稱為“Users”。

package com.evaluation.evaluationSystem.model;

import jakarta.persistence.*;

@Entity
@Table(name = "users")
public class Users {
    public Long getId() {
        return id;
    }

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id")
    private Long id;

    @Column(name = "email")
    private String email;

    @Column(name = "password")
    private String password;

    public void setId(Long id) {
        this.id = id;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}
登入後複製

在此檔案中,我們定義一個 JPA 實體 Users,它將對應到資料庫表 users。該類別包含 ID、電子郵件和密碼字段,這些字段對應於使用者表中的列,因此請確保該字段與資料庫的列對齊。

繼續,建立另一個名為「controller」的子包並在其中建立一個檔案。

package com.evaluation.evaluationSystem.controller;

import com.evaluation.evaluationSystem.model.Users;
import com.evaluation.evaluationSystem.repository.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;
import java.util.Optional;

@RestController
public class UsersController {
    @Autowired
    private UserRepository userRepository;

    @GetMapping("/users")
    public List<Users> getUsers(@RequestParam("search") Optional<String> searchParam){
        return searchParam.map(param -> userRepository.getContainingQuote(param))
                .orElse(userRepository.findAll());
    }
}

登入後複製

在這個檔案中,我們定義了一個 RESTful API 端點 (/users),它可以根據搜尋參數選擇性地過濾使用者實體。它利用 UserRepository 進行資料庫交互,並由於 @RestController 註釋而以 JSON 格式傳回結果。將“/users”替換為您想要的任何端點。

再建立一個(最後一個)名為repository的子包,並建立一個檔案介面(注意,不是類別)。

package com.evaluation.evaluationSystem.repository;

import com.evaluation.evaluationSystem.model.Users;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;

import java.util.List;

public interface UserRepository extends JpaRepository<Users, Long> {
    @Query("SELECT u FROM Users u WHERE u.email LIKE %:word%")
    List<Users> getContainingQuote(@Param("word") String word);
}
登入後複製

在此文件中,我們定義了允許我們從資料庫檢索資料的查詢。確保根據您的需求對其進行編輯。我們使用 JPQL(Java 持久性查詢語言)來撰寫此查詢。它是一種查詢語言,定義為 Java Persistence API (JPA) 規範的一部分,用於對 Java 物件和實體執行資料庫操作。

您最後的資料夾結構應如下所示:

Image description

現在,導航到主檔案(在我的例子中為EvaluationSystemApplication)並運行該專案。如果一切正常,存取 localhost:8080/users (或您選擇的端點)將顯示資料庫中的資料。確保在資料表中填充一些內容。

結論

希望本教學對您有幫助。我也是這個環境的新人,所以我也學習。我們非常歡迎每一則意見和建議!

請隨意追蹤我的 GitHub 帳戶,以了解我使用 Spring Boot、MySQL 和 React 開發全端 Web 應用程式的最新動態!

以上是將 Spring Boot 與 MySQL 連接的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板