JPA(三)JPA 的 API

1.1 Persistence 对象

Persistence 对 象主 要作 用 是用 于 获 取 EntityManagerFactory 对 象 的 。 通过 调 用 该 类 的
createEntityManagerFactory 静态方法,根据配置文件中持久化单元名称创建 EntityManagerFactory。
//1. 创建 EntitymanagerFactory
@Test
String unitName = "myJpa";
EntityManagerFactory factory= Persistence.createEntityManagerFactory(unitName);

2 EntityManagerFactory

EntityManagerFactory 接口主要用来创建 EntityManager 实例
//创建实体管理类
EntityManager em = factory.createEntityManager();
由于 EntityManagerFactory 是一个线程安全的对象(即多个线程访问同一个 EntityManagerFactory
对象不会有线程安全问题),并且 EntityManagerFactory 的创建极其浪费资源,所以在使用 JPA 编程时,我
们 可 以 对 EntityManagerFactory 的 创 建 进 行 优 化 , 只 需 要 做 到 一 个 工 程 只 存 在 一 个
EntityManagerFactory 即可

3 EntityManager

在 JPA 规范中, EntityManager 是完成持久化操作的核心对象。实体类作为普通 java 对象,只有在调用
EntityManager 将其持久化后才会变成持久化对象。EntityManager 对象在一组实体类与底层数据源之间进行
O/R 映射的管理。它可以用来管理和更新 Entity Bean, 根椐主键查找 Entity Bean, 还可以通过 JPQL 语句
查询实体。
我们可以通过调用 EntityManager 的方法完成获取事务,以及持久化数据库的操作
方法说明:
getTransaction : 获取事务对象
persist : 保存操作
merge : 更新操作
remove : 删除操作
find/getReference : 根据 id 查询

4 EntityTransaction

在 JPA 规范中, EntityTransaction 是完成事务操作的核心对象,对于 EntityTransaction 在我们的
java 代码中承接的功能比较简单
begin:开启事务
commit:提交事务
rollback:回滚事务

5抽取 JPAUtil 工具类

package com.it.jpa.util;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

public final class JpaUtil {
    // JPA 的实体管理器工厂:相当于 Hibernate 的 SessionFactory
    private static EntityManagerFactory em;
    // 使用静态代码块赋值
    static {
        // 注意:该方法参数必须和 persistence.xml 中 persistence-unit 标签 name 属性取值一致
        em = Persistence.createEntityManagerFactory("myPersistUnit");
    }

    /**
     * 使用管理器工厂生产一个管理器对象
     *
     * @return
     */
    public static EntityManager getEntityManager() {
        return em.createEntityManager();
    }
}

猜你喜欢

转载自blog.csdn.net/houysx/article/details/80698116
JPA