大家好,
在本教程中,我将解释将 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中文网其他相关文章!