JPA EntitManager初体验

EntityManager,顾名思义,实体管理器,负责管理Entity对象,Entity的操作包括添加,删除,修改和查询,都是通过实体管理器来实现的。它由EntityManagerFactory所创建。EntityManagerFactory,作为EntityManager的工厂,包含有当前O-R映射的元数据信息,每个EntityManagerFactory,可称为一个持久化单元(PersistenceUnit),每个持久化单元可认为是一个数据源的映射


  PersistenceContext,称为持久化上下文,被管理的实体对象(Entity)的数据。每个EntityManager,都会跟一个PersistenceContext相关联。PersistenceContext中存储的是实体对象的数据,而关系数据库中存储的是记录,EntityManager正是维护这种OR映射的中间者,它可以把数据从数据库中加载到PersistenceContext中,也可以把数据从PersistenceContext中持久化到数据库,EntityManager通过Persist、merge、remove、refresh、flush等操作来操纵PersistenceContext与数据库数据之间的同步!

 

引入实体管理器


依赖注入EntityManaer

 EJB容器中,使用依赖注入来创建EntityManager

 

如:

@PersistenceContext(unitName="exam-entity")
protectedEntityManager em;

@PersistenceContex表示标注的属性 em 是一个实体管理器EntityManager对象,EJB容器会根据 unitName 的值来初始化EntityMangerunitName 的值为persistence.xml中配置的unit中的name

如:

<persistence-unitname="exam-entity" transaction-type="JTA">

操作实体Entity


 基本的操作有

persist

Find

Merge

Remove

createQuery


2.1添加Entity

 实体管理器中的persist方法可以在数据中添加一条记录

Public void persist(object entity)

实例代码如下:

User user= new User();
user.setId(UUID.randomUUID().toString());
user.setName("田老师");
em.persist(user);


2.2根据主键查找Entity


find方法根据主键查找对应实体

Public <T> find (Class<T> entityClass,Object primaryKey);

primaryKey为主键的值。如:查找iduuid的实体代码

User user=em.find(User.class,"uuid");

2.3更新 Entity


merge方法可以将实体更新到数据库中,

Public <T> T merge (T entity);

其中,可以通过find方法先查找出来,然后重新设置值后,最后更新

User user=em.find(User.class,"uuid");
user.setName("李老师");
Em.merge(user);

2.4删除Entity


remove方法删除数据库中一条记录

Pubilc void remove(Object entity);

也是通过find方法先查找出来,然后删除

User user=em.find(User.class,"uuid");
em.remove(user);


小结:


以上是对JPA的初步认识,是最基本的增删该查是没有问题的,当然了这里介绍的只是初步认识,并没有设计抽象等操作,接下来 是 进阶篇幅介绍。

 

 

你可能感兴趣的:(JPA EntitManager初体验)