纸聊

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 106|回复: 0

使用 JPA / Hibernate 的 5 个理由

[复制链接]

2

主题

0

回帖

8

积分

新手上路

Rank: 1

积分
8
sara356317 发表于 2024-2-17 14:02:46
在我们深入探讨使用 JPA 的原因之前,让我快速解释一下它是什么。 Java Persistence API (JPA)是 Java 中对象关系映射的规范。至于Java Community Process中的大多数标准,它是由不同的框架实现的。最流行的一种是Hibernate。 Pause Next Unmute Current Time 0:09 / Duration 2:00 Fullscreen 所有 JPA 实现都支持规范定义的功能,并且通常通过自定义功能对其进行扩展。这提供了 2 个主要优点: 只要您不使用任何专有功能,您就可以快速切换 JPA 实现。 不同的实现可以添加额外的功能,从而比标准更快地进行创新。其中一些可能会在以后成为规范的一部分。 好的,理论已经足够了。让我们首先简要介绍 JPA,然后看看使用它的一些原因。 JPA 入门 当然,不可能仅用一小节来全面解释 JPA。但我想向您展示一个基本用例,让您熟悉一般概念。 让我们从 persistence.xml 文件开始。



它的结构是由 JPA 标准定义的,它为持久性提供者提供配置,首先是数据库驱动程序和连接信息。您可以在以下代码片段中看到一个简单的示例配置。它被映射到具有相同名称的表,在本例中为author表。 属性id是实体和数据库表的主键。 JPA实现自动生成主键值,并使用版本属性进行乐观锁定,以避免同一数据库记录的并发更新。 该@Column注释指定该属性映射 富人人数数据 到数据库列。与注释类似@Entity,它使用属性的名称作为默认列名称。 注释@ManyToMany定义与另一个实体的关系。在此示例中,它定义了与Book映射到另一个数据库表的实体的关系。 正如您所看到的,您只需要添加一些注释来映射数据库表并使用乐观锁定和主键生成等其他功能。 休眠 5 个理由 1. 开发者生产力 开发人员生产力可能是 JPA 及其任何实现最常被提及的优势。主要原因是您只需定义一次数据库表和域模型之间的映射即可将其用于所有写入和大多数读取操作。



最重要的是,您还可以获得许多其他功能,否则您需要自己实现这些功能,例如主键生成、并发管理和不同的性能优化。 但这只是 JPA 因其开发人员生产力而广受欢迎的原因之一。它还提供了一个简单但非常高效的API来实现基本的CRUD操作。您可以在以下 2 个代码片段中查看示例。 在第一个中,我向您展示如何Author在数据库中保留新实体。 正如您所看到的,您不需要做太多事情。此示例中的第一行和最后两行是样板代码,您只需为每个事务运行一次即可获取EntityManager并处理该事务。如果您在 Java EE 容器或 Spring 应用程序中使用 JPA,则可以忽略这些行,因为您的框架会处理它。 主要工作在第 4-7 行完成。我创建实体的新对象Author并调用 setter 方法来提供新作者的名字和姓氏。然后我调用接口上的 persist 方法EntityManager,该方法告诉 JPA 实现生成 SQLINSERT语句并将其发送到数据库。 下一个示例的代码看起来类似。


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|小黑屋|纸聊

GMT+8, 2025-5-1 22:00 , Processed in 0.032219 second(s), 23 queries .

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表