JPA中的EntityManager是什么?如何使用它进行持久化操作?代码举例讲解

JPA中的EntityManager是用于管理实体的接口,它用于进行持久化操作如增删改查等。我们可以通过以下步骤使用EntityManager进行持久化操作:

  1. 从EntityManagerFactory获得EntityManager实例:
EntityManagerFactory emf = Persistence.createEntityManagerFactory("unitName");
EntityManager em = emf.createEntityManager();
  1. 开始事务:
em.getTransaction().begin();
  1. 持久化操作:
// 保存实体  
em.persist(entity);

// 修改实体
em.merge(entity);  

// 删除实体
em.remove(entity);

// 查询实体
User user = em.find(User.class, 1L);

// JPQL查询  
TypedQuery<User> query = em.createQuery("SELECT u FROM User u", User.class);
List<User> users = query.getResultList();
  1. 提交事务:
em.getTransaction().commit(); 
  1. 关闭EntityManager:
em.close();

代码示例:

EntityManagerFactory emf = Persistence.createEntityManagerFactory("exampleUnit");
EntityManager em = emf.createEntityManager();   

// 事务开始
em.getTransaction().begin();  

// 保存实体
User user = new User("John");
em.persist(user);

// 提交事务  
em.getTransaction().commit();   

// 关闭EntityManager
em.close();