zoukankan      html  css  js  c++  java
  • JPA+Hibernate 3.3 ——增删改查

    1.     查找对象
       1)  
    find()方法查找对象

    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.     
    更新对象 

    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();
        }

    将游离状态下的数据更新到数据库中 

    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();
        }

     

  • 相关阅读:
    《疯狂的程序员》二
    《当程序员的那些狗日日子》五
    《疯狂的程序员》九
    《疯狂的程序员》一
    《疯狂的程序员》三
    和菜鸟一起学算法之递归和分治简单实例
    《疯狂的程序员》八
    《当程序员的那些狗日日子》四
    开放源代码软件利润高于专有代码
    少年黑客破解Google视频播放器
  • 原文地址:https://www.cnblogs.com/lhj588/p/3269904.html
Copyright © 2011-2022 走看看