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

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

          主站蜘蛛池模板: 思南县| 滕州市| 雅安市| 河北省| 肇东市| 乌苏市| 大荔县| 齐齐哈尔市| 开阳县| 卓尼县| 和田县| 迁安市| 宽城| 抚宁县| 青河县| 儋州市| 资兴市| 万年县| 宝应县| 临漳县| 永寿县| 湛江市| 长宁区| 隆德县| 宁陵县| 彰武县| 师宗县| 营口市| 南溪县| 南皮县| 永州市| 洛南县| 界首市| 澎湖县| 芦溪县| 江津市| 拉孜县| 渭源县| 宁津县| 双峰县| 长垣县|