JPA+Hibernate 3.3 ——增刪改查

1.     查找對象
   1)  
find()方法查找對象
java

public void getPerson(){
        EntityManagerFactory factory = Persistence.createEntityManagerFactory("jpa");
        EntityManager em = factory.createEntityManager();
        //至關於Hibernate中的get方法
        Person person = em.find(Person.class, 1);
        System.out.println(person.getUserName());
        em.close();
        factory.close();
    }

 

  2)  getReference()方法查找對象 
數據庫

public void getPerson2(){
        EntityManagerFactory factory = Persistence.createEntityManagerFactory("jpa");
        EntityManager em = factory.createEntityManager();
        //至關於Hibername中的load方法,延遲加載
        Person person = em.getReference(Person.class, 1);
        System.out.println(person.getUserName());
        em.close();
        factory.close();
    }

 

find方法至關於Hibernate中的get方法,getReference方法至關於Hibernate中的load方法,具備延遲加載的做用;當查找的對象不存在時,find的方法返回null值,而getReference方法則拋出異常javax.persistence.EntityNotFoundException
  2.     
更新對象 spa

public void update(){
        EntityManagerFactory factory = Persistence.createEntityManagerFactory("jpa");
        EntityManager em = factory.createEntityManager();
        em.getTransaction().begin();
        Person person = em.find(Person.class, 1);
        person.setUserName("kate");
        em.getTransaction().commit();
        em.close();
        factory.close();
    }

 

將遊離狀態下的數據更新到數據庫中 code

public void updatePerson(){
        EntityManagerFactory factory = Persistence.createEntityManagerFactory("jpa");
        EntityManager em = factory.createEntityManager();
        em.getTransaction().begin();
        Person person = em.find(Person.class, 1);
        //把實體管理器中的實體變成遊離狀態
        em.clear();
        person.setUserName("jerry");
        //把遊離狀態下的更新同步到數據庫中
        em.merge(person);
        em.getTransaction().commit();
        em.close();
        factory.close();
    }

 

  3.     刪除 對象

public void delete(){
        EntityManagerFactory factory = Persistence.createEntityManagerFactory("jpa");
        EntityManager em = factory.createEntityManager();
        em.getTransaction().begin();
        Person person = em.find(Person.class, 1);
        em.remove(person);
        em.getTransaction().commit();
        em.close();
        factory.close();
    }
相關文章
相關標籤/搜索