大家好,
在本教程中,我將解釋將 Spring Boot 與 MySQL 連接的過程,以便為我的前端建立 API。
IDE(我使用 Intellij IDEA,所以本教學將基於此)
MySql 工作台
點這裡取得原始碼。
造訪 start.spring.io 並選擇:
項目:Maven
語言:Java
春季啟動:3.3.0
在必要的欄位中寫入您的內容
包裝:罐裝
爪哇:17
至於依賴項,我們需要:
MySQL 驅動程式
Spring Web
Spring Data JPA
在這些之後,initializr 應如下所示:
按一下「產生」並將資料夾保存在您所需的路徑中並提取資料夾的內容。
先在MySQL中建立一個資料庫。我為此使用了 MySQL Workbench。
即使是最簡單的資料庫也可以工作,就像這樣:
在所需的 IDE 中開啟資料夾的內容。我將使用 Intellij IDEA 介紹本教學。
開啟位於 scr/resources/application.properties 的 application.properties 檔案
在此文件中,我們配置有助於連接資料庫的設定。
將這些設定寫入檔案:
將 ${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 物件和實體執行資料庫操作。
您最後的資料夾結構應如下所示:
現在,導航到主檔案(在我的例子中為EvaluationSystemApplication)並運行該專案。如果一切正常,存取 localhost:8080/users (或您選擇的端點)將顯示資料庫中的資料。確保在資料表中填充一些內容。
希望本教學對您有幫助。我也是這個環境的新人,所以我也學習。我們非常歡迎每一則意見和建議!
請隨意追蹤我的 GitHub 帳戶,以了解我使用 Spring Boot、MySQL 和 React 開發全端 Web 應用程式的最新動態!
以上是將 Spring Boot 與 MySQL 連接的詳細內容。更多資訊請關注PHP中文網其他相關文章!