Spring Boot JPA2025 年 1 月 17 日 | 9 分钟阅读 什么是 JPA?Spring Boot JPA 是一个 Java 规范,用于管理 Java 应用程序中的关系型数据。它允许我们在 Java 对象/类和关系型数据库之间访问和持久化数据。JPA 遵循对象-关系映射(ORM)。它是一组接口。它还提供了一个运行时 EntityManager API,用于处理针对数据库的对象的查询和事务。它使用平台无关的面向对象查询语言 JPQL(Java 持久化查询语言)。 在持久化方面,它涵盖三个领域
JPA 不是一个框架。它定义了一个可以由任何框架实现的理念。 我们为什么要使用 JPA?JPA 比 JDBC、SQL 和手写映射更简单、更清晰、更省力。JPA 适用于非性能导向的复杂应用程序。JPA 相对于 JDBC 的主要优点是,在 JPA 中,数据由对象和类表示,而在 JDBC 中,数据由表和记录表示。它使用 POJO 来表示持久化数据,从而简化了数据库编程。JPA 还有其他一些优点
JPA 特性JPA 具有以下特性
JPA 架构JPA 是将业务实体存储为关系型实体的一种来源。它展示了如何将 POJO 定义为实体以及如何管理带有关系的实体。 下图描述了 JPA 的类级别架构,它描述了定义在 javax persistence 包中的 JPA 核心类和接口。JPA 架构包含以下单元
![]() JPA 类关系我们上面讨论过的类和接口之间保持着关系。下图显示了类和接口之间的关系。 ![]()
JPA 实现JPA 是一个开源 API。有各种企业供应商,如 Eclipse、RedHat、Oracle 等,它们通过在产品中添加 JPA 来提供新产品。有一些流行的 JPA 实现框架,如 Hibernate、EclipseLink、DataNucleus 等。它也称为对象-关系映射(ORM)工具。 对象-关系映射(ORM)在 ORM 中,Java 对象到数据库表的映射,反之亦然,称为对象-关系映射。ORM 映射充当关系型数据库(表和记录)和 Java 应用程序(类和对象)之间的桥梁。 在下图中,ORM 层是一个适配器层。它将对象图的语言适配到 SQL 和关系表的语言。 ![]() ORM 层存在于应用程序和数据库之间。它转换 Java 类和对象,以便它们可以存储和管理在关系型数据库中。默认情况下,持久化的名称成为表的名称,字段成为列。一旦应用程序设置完成,每行表都对应一个对象。 JPA 版本EJB 的早期版本使用 javax.ejb.EntityBean 接口定义了持久化层并与业务逻辑层结合。EJB 规范包含 JPA 的定义。 在引入 EJB 3.0 时,持久化层被分离并指定为 JPA 1.0(Java Persistence API)。此 API 的规范于 2006 年 5 月 11 日随 JAVA EE5 的规范一起发布,使用 JSR 220。 2019 年,JPA 更名为 Jakarta Persistence。JPA 的最新版本是 2.2。它支持以下功能
JPA 和 Hibernate 的区别JPA:JPA 是一个 Java 规范,用于访问、管理和持久化 Java 对象和关系型数据库之间的数据。它是 ORM 的标准方法。 Hibernate:它是一个轻量级、开源的 ORM 工具,用于将 Java 对象存储在关系型数据库系统中。它是 JPA 的提供者。它遵循 JPA 提供的通用方法。 下表描述了 JPA 和 Hibernate 之间的区别。
Spring Boot Starter Data JPASpring Boot 提供了启动依赖 spring-boot-starter-data-jpa,以有效地将 Spring Boot 应用程序与关系型数据库连接。spring-boot-starter-data-jpa 内部使用 spring-boot-jpa 依赖。 Spring Boot JPA 示例让我们创建一个使用 JPA 连接数据库的 Spring Boot 应用程序。在以下示例中,我们使用了内存数据库 Apache Derby。 Apache Derby:它是一个开源、嵌入式关系型数据库,完全用 Java 实现。它在 Apache License 2.0 下可用。Apache Derby 具有以下优点
Spring Boot 可以自动配置嵌入式数据库,如 H2、HSQL 和 Derby 数据库。我们不需要提供任何连接 URL。我们只需包含我们想要使用的嵌入式数据库的构建依赖项。 在 Spring Boot 中,我们只需在 pom.xml 文件中添加 Derby 依赖项,即可轻松集成 Apache Derby 数据库。 步骤 1:打开 Spring Initializr 。 步骤 2:选择最新版本的 Spring Boot 2.3.0(SNAPSHOT) 步骤 3:提供组名称。我们提供了 com.javatpoint。 步骤 4:提供工件 ID。我们提供了 apache-derby-example。 步骤 5:添加依赖项:Spring Web、Spring Data JPA 和 Apache Derby Database。 步骤 6:单击生成按钮。当我们单击生成按钮时,它会将项目包装在一个 Jar 文件中并下载到本地系统。 ![]() 步骤 7:解压 Jar 文件并将其粘贴到 STS 工作区中。 步骤 8:导入项目文件夹到 STS 中。 文件 -> 导入 -> 现有 Maven 项目 -> 浏览 -> 选择文件夹 apache-derby-example -> 完成 它需要一些时间来导入。 步骤 9:在文件夹 src/main/java 中创建一个名为 com.javatpoint.model 的包。 步骤 10:在包 com.javatpoint.model 中创建一个名为 UserRecord 的类,并执行以下操作
UserRecord.java 步骤 11:在文件夹 src/main/java 中创建一个名为 com.javatpoint.controller 的包。 步骤 12:在包 com.javatpoint.controller 中创建一个名为 UserController 的控制器类,并执行以下操作
UserController.java 步骤 13:在文件夹 src/main/java 中创建一个名为 com.javatpoint.service 的包。 步骤 14:在包 com.javatpoint.service 中创建一个名为 UserService 的服务类,并执行以下操作
UserService.java 步骤 15:在文件夹 src/main/java 中创建一个名为 com.javatpoint.repository 的包。 步骤 16:在包 com.javatpoint.repository 中创建一个名为 UserRepository 的仓库接口,并扩展 CrudRepository。 UserRepository.java 步骤 17:现在,打开 ApacheDerbyExampleApplication.java 文件。它在设置应用程序时默认创建。 ApacheDerbyExampleApplication.java 现在,我们已经根据要求设置了所有必要的类和包。请注意,我们没有为数据库提供任何连接 URL。完成以上所有步骤后,项目目录如下所示 ![]() 让我们运行该应用程序。 步骤 18:打开 ApacheDerbyExampleApplication.java 文件并将其作为 Java 应用程序运行。 步骤 19:打开浏览器并访问 URL https://:8080/。它返回一个空列表,因为我们还没有在列表中添加任何用户。 要将用户添加到数据库,我们将使用 Postman 发送 POST 请求。 步骤 20:打开 Postman 并执行以下操作
![]() 当我们单击发送按钮时,它显示 Status:200 OK。这意味着请求已成功执行。 步骤 21:打开浏览器并访问 URL https://:8080。它返回我们已插入数据库的用户。 ![]() 下一个主题Spring Boot JDBC |
我们请求您订阅我们的新闻通讯以获取最新更新。