JPA+Hibernate 3.3 學習小結——增刪改查

          Posted on 2009-06-20 18:59 胡娟 閱讀(1436) 評論(0)  編輯  收藏 所屬分類: JAVA
          1.     查找對象
             1) 
          find()方法查找對象
          public void getPerson(){
                  EntityManagerFactory factory 
          = Persistence.createEntityManagerFactory("jpa");
                  EntityManager em 
          = factory.createEntityManager();
                  
          //相當于Hibernate中的get方法
                  Person person = em.find(Person.class1);
                  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.class1);
                  System.out.println(person.getUserName());
                  em.close();
                  factory.close();
              }
          find方法相當于Hibernate中的get方法,getReference方法相當于Hibernate中的load方法,具有延遲加載的作用;當查找的對象不存在時,find的方法返回null值,而getReference方法則拋出異常javax.persistence.EntityNotFoundException
            2.    
          更新對象
          public void update(){
                  EntityManagerFactory factory 
          = Persistence.createEntityManagerFactory("jpa");
                  EntityManager em 
          = factory.createEntityManager();
                  em.getTransaction().begin();
                  Person person 
          = em.find(Person.class1);
                  person.setUserName(
          "kate");
                  em.getTransaction().commit();
                  em.close();
                  factory.close();
              }
          將游離狀態下的數據更新到數據庫中
          public void updatePerson(){
                  EntityManagerFactory factory 
          = Persistence.createEntityManagerFactory("jpa");
                  EntityManager em 
          = factory.createEntityManager();
                  em.getTransaction().begin();
                  Person person 
          = em.find(Person.class1);
                  
          //把實體管理器中的實體變成游離狀態
                  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.class1);
                  em.remove(person);
                  em.getTransaction().commit();
                  em.close();
                  factory.close();
              }

          posts - 28, comments - 5, trackbacks - 0, articles - 1

          Copyright © 胡娟

          主站蜘蛛池模板: 东乡县| 那曲县| 彰化县| 霍山县| 宁安市| 淄博市| 长宁区| 津市市| 北辰区| 潞西市| 辽宁省| 西充县| 新和县| 长汀县| 白朗县| 新绛县| 伊川县| 汝城县| 德阳市| 临沧市| 威宁| 西青区| 鸡西市| 专栏| 洱源县| 东兴市| 桂阳县| 龙南县| 诏安县| 滨海县| 嘉义县| 舞钢市| 北票市| 榆林市| 靖安县| 昌宁县| 梅州市| 乐东| 武陟县| 华宁县| 扎鲁特旗|