JPA的核心API

一、Persistence对象

Persistence对象主要作用是用于获取EntityManagerFactory对象的 。通过调用该类的createEntityManagerFactory静态方法,根据配置文件中持久化单元名称创建EntityManagerFactory。


//1. 创建 EntitymanagerFactory

@Test

String unitName = "myJpa";

EntityManagerFactory factory= Persistence.createEntityManagerFactory(unitName);

 

二、EntityManagerFactory

       EntityManagerFactory 接口主要用来创建 EntityManager 实例


//创建实体管理类

EntityManager em = factory.createEntityManager();

        由于EntityManagerFactory 是一个线程安全的对象(即多个线程访问同一个EntityManagerFactory 对象不会有线程安全问题),并且EntityManagerFactory 的创建极其浪费资源,所以在使用JPA编程时,我们可以对EntityManagerFactory 的创建进行优化,只需要做到一个工程只存在一个EntityManagerFactory 即可

 

​​​​​​​三、EntityManager

        在 JPA 规范中, EntityManager是完成持久化操作的核心对象。实体类作为普通 java对象,只有在调用 EntityManager将其持久化后才会变成持久化对象。EntityManager对象在一组实体类与底层数据源之间进行 O/R 映射的管理。它可以用来管理和更新 Entity Bean, 根椐主键查找 Entity Bean, 还可以通过JPQL语句查询实体。

我们可以通过调用EntityManager的方法完成获取事务,以及持久化数据库的操作

方法说明:

getTransaction : 获取事务对象

persist : 保存操作

merge : 更新操作

remove : 删除操作

find/getReference : 根据id查询

​​​​​​​四、EntityTransaction

在 JPA 规范中, EntityTransaction是完成事务操作的核心对象,对于EntityTransaction在我们的java代码中承接的功能比较简单

begin:开启事务

commit:提交事务

rollback:回滚事务

五、JPAUtil工具类



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();

}

}

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值