Spring Data JPA 简介
了解 Spring Data JPA 的优势,并为应用程序建立数据库连接。
Spring Data JPA 简介 是 CoddyKit 上的免费 Spring Boot 4 Microservices & REST APIs 课时。 这是第 2 节课,共 6 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Spring Boot 4 Microservices & REST APIs 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Spring Boot 4 Microservices & REST APIs 课程共包含 6 节课。
本课时的部分内容尚未翻译,以英文显示。
What is Data Persistence?
Imagine an application that needs to remember user preferences, product details, or blog posts. If this data disappears every time the app closes, it's not very useful!
Data persistence is the ability for an application to store data permanently. This means the data survives even after the application stops running or the device is turned off. Databases are the most common tools for achieving this.
Java & Database Interaction
In Java, interacting with databases traditionally involves JDBC (Java Database Connectivity), a low-level API. While powerful, it can be quite verbose.
To simplify things, the JPA (Java Persistence API) standard emerged. JPA provides an ORM (Object-Relational Mapping) approach, allowing you to work with database tables using regular Java objects, reducing direct SQL interaction.
Meet Spring Data JPA!
Spring Data JPA is a powerful module within the larger Spring Data project. It builds on top of the JPA standard to make database access even simpler and more efficient in Spring applications.
Its primary goal is to significantly reduce the boilerplate code required for common data access operations, letting you focus on your application's business logic.
Why Spring Data JPA is Great
Spring Data JPA offers several compelling benefits:
- Reduced Boilerplate: You don't need to write basic CRUD (Create, Read, Update, Delete) methods.
- Automatic Query Generation: Define method names (e.g.,
findByEmail), and Spring Data JPA automatically generates the SQL query. - Seamless Spring Integration: It integrates perfectly with other Spring features like dependency injection and transaction management.
- Support for Various Databases: Works with popular relational databases like H2, MySQL, PostgreSQL, and Oracle.
Essential Dependencies
To use Spring Data JPA in a Spring Boot project, you need to add specific dependencies to your pom.xml (for Maven) or build.gradle (for Gradle).
The two main ones we'll use for a basic setup are:
spring-boot-starter-data-jpa: This is the core dependency. It brings in JPA, Hibernate (the default JPA implementation), and Spring Data JPA itself.h2: An in-memory database. It's excellent for development and testing because it's lightweight and easy to set up, without needing a separate database server.
Configuring `pom.xml`
Here's how you'd typically add these dependencies to your pom.xml file. The spring-boot-starter-parent manages versions for you.
Notice the <scope>runtime</scope> for H2, meaning it's needed during execution but not for compiling your code.
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.2.5</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.coddykit</groupId>
<artifactId>jpa-intro</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>jpa-intro</name>
<description>Intro to Spring Data JPA</description>
<properties>
<java.version>17</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>Database Connection Auto-Config
One of Spring Boot's most convenient features is auto-configuration. When it detects the spring-boot-starter-data-jpa and a database driver (like H2) on the classpath, it automatically configures a DataSource.
A DataSource is essentially how your application connects to the database. This means you often don't need to manually write connection pooling or database setup code; Spring Boot handles sensible defaults for you!
`application.properties` for H2
While auto-configuration is great, you'll often want to customize database settings. This is typically done in application.properties or application.yml files.
Here's how to configure an in-memory H2 database and enable its built-in web console, which is super helpful for viewing your database contents during development:
spring.h2.console.enabled=true
spring.h2.console.path=/h2-console
spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=password
spring.jpa.database-platform=org.hibernate.dialect.H2DialectOur First Spring Boot App
With the necessary dependencies and database configuration in place, our Spring Boot application is ready to start up and connect to the H2 database. This simple class launches the application.
After running, you can typically access the H2 console at http://localhost:8080/h2-console using the credentials configured above.
package com.coddykit.jpaintro;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class JpaIntroApplication {
public static void main(String[] args) {
SpringApplication.run(JpaIntroApplication.class, args);
System.out.println("Spring Boot application started with H2 database!");
// The application will keep running until manually stopped.
// If h2 console is enabled, you can visit:
// http://localhost:8080/h2-console
// Use JDBC URL: jdbc:h2:mem:testdb, User: sa, Password: password
}
}Quick Check: Core Dependency
Which of the following dependencies is primarily responsible for bringing in Spring Data JPA and its underlying JPA implementation (like Hibernate) into a Spring Boot project?
Recap: Intro to Spring Data JPA
Great job! In this lesson, you've taken your first steps into data persistence with Spring Boot.
- We understood why data persistence is crucial for applications.
- We introduced Spring Data JPA as a powerful tool to simplify database interactions.
- You learned about adding essential dependencies like
spring-boot-starter-data-jpaandh2. - We configured our in-memory H2 database using
application.propertiesand saw how Spring Boot auto-configures theDataSource. - Finally, you ran a basic Spring Boot application with H2 ready for action!
Next, we'll dive deeper into defining entities and repositories to truly interact with our database!
用 AI 导师学习 Java — 免费
在浏览器中编写并运行真实代码,获得全天候 AI 导师的即时帮助,并在网页或应用中继续学习。
- 课程
- 24
- 课程
- 93
常见问题解答
「Spring Data JPA 简介」课时是免费的吗?
是的 — 「Spring Data JPA 简介」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Spring Boot 4 Microservices & REST APIs 课程的其余内容,请升级到 CoddyKit PRO。 Spring Boot 4 Microservices & REST APIs 课程共包含 6 节课。
「Spring Data JPA 简介」这节课中我会学到什么?
了解 Spring Data JPA 的优势,并为应用程序建立数据库连接。 你通过在浏览器中直接运行的动手代码来练习 Spring Boot 4 Microservices & REST APIs,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Spring Boot 4 Microservices & REST APIs 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Spring Boot 4 Microservices & REST APIs 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 6 节。
「Spring Data JPA 简介」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Spring Boot 4 Microservices & REST APIs 课中编写并运行代码吗?
能。每节 Spring Boot 4 Microservices & REST APIs 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 集成 H2 数据库与 JPA
- Spring Data JPA 简介
- 创建实体与存储库
- 定义实体与存储库
- 使用 REST 执行 CRUD 操作
- 执行增删改查操作