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

          Posted on 2009-06-20 18:59 胡娟 閱讀(1430) 評論(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 © 胡娟

          主站蜘蛛池模板: 文成县| 民勤县| 鄂托克前旗| 德阳市| 乌鲁木齐市| 阳西县| 龙州县| 三明市| 石柱| 浪卡子县| 襄城县| 微博| 汤阴县| 乾安县| 淄博市| 杂多县| 肃宁县| 岳池县| 石棉县| 朝阳区| 周至县| 甘肃省| 平乐县| 华宁县| 九龙坡区| 龙陵县| 习水县| 梅州市| 津市市| 柘荣县| 都安| 金昌市| 温州市| 山西省| 大关县| 浮山县| 淳安县| 台南市| 绥芬河市| 永德县| 杂多县|