使用JPA进行持久化操作的步骤如下:
- 创建实体类,使用@Entity注解定义实体,@Id定义主键。
@Entity
public class User {
@Id
private int id;
}
- 在persistence.xml中配置持久化单元,指定ORM框架的实现类(如Hibernate)。
<persistence-unit name="exampleUnit" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
</persistence-unit>
- 通过EntityManagerFactory获得EntityManager。
EntityManagerFactory emf = Persistence.createEntityManagerFactory("exampleUnit");
EntityManager em = emf.createEntityManager();
- 开始事务。通过EntityManager获得EntityTransaction并调用begin()方法。
EntityTransaction tx = em.getTransaction();
tx.begin();
- 持久化实体。调用EntityManager的persist()方法。
User user = new User();
em.persist(user); // 保存实体
- 读取实体。使用find()或createQuery()方法。
User user = em.find(User.class, 1); // 根据主键读取
TypedQuery<User> query = em.createQuery("SELECT u FROM User u", User.class);
List<User> users = query.getResultList(); // JPQL查询读取
- 更新实体。调用merge()或detach()及attach()方法。
User user = em.find(User.class, 1);
user.setName("John");
em.merge(user); // 更新实体
- 删除实体。调用remove()方法。
User user = em.find(User.class, 1);
em.remove(user); // 删除实体
- 提交或回滚事务。
tx.commit();
tx.rollback();
- 关闭EntityManager及EntityManagerFactory。
em.close();
emf.close();