JPA的增删改查

JPA的增删改查

增 persist

@Test
public void persist(){
    //获得操作对象
    EntityManager manager = JpaUtils.getEntityManager();
    //启动事务
    EntityTransaction transaction = manager.getTransaction();
    transaction.begin();

    //封装数据
    Customer c = new Customer();
    c.setCustName("Miss u");

    //保存数据
    manager.persist(c);
    //提交事务
    transaction.commit();

    //关闭
    manager.close();
}

删 remove

注意:JPA通过OID删除数据,而且对象必须是持久态对象

@Test
public void remove(){
    //获得操作对象
    EntityManager manager = JpaUtils.getEntityManager();
    //启动事务
    EntityTransaction transaction = manager.getTransaction();
    transaction.begin();

    //封装数据
    //注意:JPA通过OID删除数据,而且对象必须是持久态对象
    Customer c = manager.find(Customer.class, 55L);

    //删除数据
    manager.remove(c);
    //提交事务
    transaction.commit();

    //关闭
    manager.close();
}

改 merge

注意:JPA通过OID更新数据,而且对象可以是持久态对象,可以不是

@Test
public void update(){
    //获得操作对象
    EntityManager manager = JpaUtils.getEntityManager();
    //启动事务
    EntityTransaction transaction = manager.getTransaction();
    transaction.begin();

    //封装数据
    //注意:JPA通过OID更新数据,而且对象可以是持久态对象,可以不是
    Customer c = manager.find(Customer.class, 54L);
    //Customer c = new Customer();
    c.setCustId(54L);
    c.setCustName("Hello");

    //更新数据
    manager.merge(c);
    //提交事务
    transaction.commit();

    //关闭
    manager.close();
}

  • 通过OID查询,使用find是无延迟得,等同于Hibernate得get
@Test
public void find(){
    //获得操作对象
    EntityManager manager = JpaUtils.getEntityManager();
    Customer c = manager.find(Customer.class, 54L);
    manager.close();
    System.out.println(c.getCustName());
}
  • 通过OID查询,使用getReference是有延迟得,等同于Hibernate得load
@Test
public void reference(){
    //获得操作对象
    EntityManager manager = JpaUtils.getEntityManager();
    Customer customer = manager.getReference(Customer.class, 54L);
    System.out.println(customer.getCustName());
    manager.close();
}

猜你喜欢

转载自blog.csdn.net/kato_op/article/details/80330139
今日推荐