📜  Spring Data JPA – 从 MySQL 中查找记录(1)

📅  最后修改于: 2023-12-03 15:20:13.133000             🧑  作者: Mango

Spring Data JPA – 从 MySQL 中查找记录

在使用Spring框架进行应用程序开发中,操作数据库是一个很普遍的需求。Spring提供了多种数据访问技术,其中之一是Spring Data JPA。在本教程中,我们将学习如何使用Spring Data JPA来从MySQL数据库中查找记录。

前提条件

在开始本教程之前,您需要:

  • 已安装Java开发环境。
  • 已安装MySQL数据库。
  • 在MySQL中创建了一个数据库,并为该数据库创建了一个用户。
步骤
  1. 创建一个Spring Boot项目。如果您还不知道如何创建Spring Boot项目,请参考 创建Spring Boot项目

  2. 添加必要的依赖项。在项目的pom.xml文件中添加以下依赖项:

<dependencies>
   <dependency>
           <groupId>org.springframework.boot</groupId>
           <artifactId>spring-boot-starter-data-jpa</artifactId>
   </dependency>
   <dependency>
       <groupId>mysql</groupId>
       <artifactId>mysql-connector-java</artifactId>
   </dependency>
   <dependency>
       <groupId>org.projectlombok</groupId>
       <artifactId>lombok</artifactId>
       <version>1.18.20</version>
       <scope>provided</scope>
   </dependency>
</dependencies>

这些依赖项将启用Spring Data JPA、MySQL驱动和Lombok。Lombok是一个Java库,可以自动为Java类生成getter、setter、equals、hashcode等方法。

  1. 配置应用程序数据库。在项目的src/main/resources目录下创建一个名为application.properties的文件,并添加以下内容:
spring.datasource.url=jdbc:mysql://localhost:3306/your_database_name
spring.datasource.username=your_username
spring.datasource.password=your_password
spring.datasource.driverClassName=com.mysql.jdbc.Driver

spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect

logging.level.org.springframework.web=INFO

在上面的配置中,将your_database_name、your_username和your_password分别替换为您的数据库名称、用户名和密码。

  1. 创建一个实体类。在src/main/java目录下创建一个名为User.java的类,并添加以下内容:
import lombok.Data;

import javax.persistence.*;

@Data
@Entity
@Table(name = "users")
public class User {

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

   private String firstName;

   private String lastName;

   private String email;

}

上面的实体类表示数据库中的一个名为users的表。该表包含四列:id、firstName、lastName和email。

  1. 创建一个JpaRepository类。在src/main/java目录下创建一个名为UserRepository.java的接口,并扩展JpaRepository:
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

@Repository
public interface UserRepository extends JpaRepository<User, Long> {

   User findByEmail(String email);

}

上面的JpaRepository类将为您提供以下功能:

  • 自动实现常见的CRUD方法,如保存、更新、删除和查找记录。
  • 自动将实体映射到数据表。

在上面的示例中,除了自动实现的CRUD方法外,还添加了一个名为findByEmail的方法。该方法将根据电子邮件地址查找用户。

  1. 编写一个测试类。在src/main/java目录下创建一个名为MyApplication.java的类,并添加以下内容:
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;

@SpringBootApplication
@ComponentScan("com.example")
public class MyApplication implements CommandLineRunner {

   @Autowired
   private UserRepository userRepository;

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

   @Override
   public void run(String... args) throws Exception {
       User user = new User();
       user.setFirstName("John");
       user.setLastName("Doe");
       user.setEmail("johndoe@example.com");
       userRepository.save(user);

       User foundUser = userRepository.findByEmail("johndoe@example.com");
       System.out.println("Found user: " + foundUser);
   }

}

上述测试类将执行以下操作:

  • 创建一个名为John Doe的用户,并保存到数据库。
  • 根据电子邮件地址johndoe@example.com查找该用户。
运行应用程序

在完成上述所有步骤后,您可以通过运行Spring Boot应用程序来测试您的代码。在终端中导航到项目的根目录,并运行以下命令:

$ mvn spring-boot:run

此命令将启动您的应用程序,并输出您在MyApplication类中添加的Found user: John Doe消息。

结论

在本教程中,我们学习了如何使用Spring Data JPA从MySQL数据库中查找记录。通过实现一个简单的应用程序,您现在已经熟悉了几个Spring框架的核心功能,包括注解、依赖注入和JpaRepository。现在,你可以在自己的应用程序中使用这些技术来更轻松地操作数据库了。