首页  >  文章  >  数据库  >  将 Spring Boot 与 MySQL 连接

将 Spring Boot 与 MySQL 连接

王林
王林原创
2024-07-18 11:05:191171浏览

大家好,

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

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn