相信大家对持久化对象的概念已经有所了解,数据持久性是应用程序从非易失性存储系统中持久化和检索信息的一种方式。由于需要访问关系数据库,持久性对于企业应用程序至关重要。为此环境开发的应用程序必须自己管理持久性或使用第三方解决方案来处理具有持久性的数据库更新和检索。自 EJB 3.0 规范以来,Java™ Persistence API (JPA) 提供了一种用于管理持久性和对象关系映射和函数的机制。
JPA 规范在内部定义了对象关系映射,而不是依赖于供应商特定的映射实现。JPA 基于适用于 Java Enterprise Edition (Java EE) 环境的 Java 编程模型,但 JPA 可以在 Java SE 环境中运行以测试应用程序功能。
JPA 代表了持久性编程模型的简化。JPA 规范明确定义了对象关系映射,而不是依赖于供应商特定的映射实现。JPA 通过使用注释或 XML 将对象映射到数据库的一个或多个表中来标准化对象关系映射的重要任务。进一步简化持久化编程模型:
EntityManager API 可以持久化、更新、检索或从数据库中删除对象。
EntityManager API 和对象关系映射元数据处理大多数数据库操作,而无需您编写 JDBC 或 SQL 代码来维护持久性。
JPA 提供了一种查询语言,扩展了独立的 EJB 查询语言(也称为 JPQL),您可以使用它来检索对象,而无需编写特定于您正在使用的数据库的 SQL 查询。
JPA 旨在在 Java Enterprise Edition (Java EE) 容器的内部和外部运行。当您在容器内运行 JPA 时,应用程序可以使用容器来管理持久性上下文。如果没有容器来管理 JPA,则应用程序必须自己处理持久性上下文管理。为容器管理的持久性设计的应用程序不需要太多的代码实现来处理持久性,但这些应用程序不能在容器之外使用。管理自己的持久性的应用程序可以在容器环境或 Java SE 环境中运行。
支持 EJB 3.x 编程模型的 Java EE 容器必须支持 JPA 实现,也称为持久性提供程序。JPA 持久性提供程序使用以下元素在 EJB 3.x 环境中实现更轻松的持久性管理:
持久化单元
定义一个完整的对象-关系模型映射 Java 类(实体 + 支持结构)与关系数据库。EntityManagerFactory 使用此数据创建可以通过 EntityManager 访问的持久性上下文。
实体管理器工厂
用于为数据库交互创建 EntityManager。应用程序服务器容器通常提供此功能,但如果您使用 JPA 应用程序管理的持久性,则需要 EntityManagerFactory。EntityManagerFactory 的实例表示持久性上下文。
持久性上下文
定义应用程序当前正在操作的活动实例集。您可以手动或通过注入创建持久性上下文。
实体管理器
维护应用程序正在使用的实体对象的活动集合的资源管理器。EntityManager 处理对象关系映射的数据库交互和元数据。EntityManager 的一个实例代表一个 Persistence 上下文。容器中的应用程序可以通过注入应用程序或在 Java 组件名称空间中查找来获取 EntityManager。如果应用程序管理其持久性,则从 EntityManagerFactory 获得 EntityManager。
实体对象
一个简单的 Java 类,它以最简单的形式表示数据库表中的一行。实体对象可以是具体类或Java抽象类。它们通过使用属性或字段来维护状态。
你适合学Java吗?4大专业测评方法
代码逻辑 吸收能力 技术学习能力 综合素质
先测评确定适合在学习