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

     

  • 相关阅读:
    MinDoc v0.6 发布,轻量级文档在线管理系统
    PostMessage和SendMessage有什么区别?(有EnumChildWindowsProc的例子)
    将QuickReport报表保存为图片(使用TMetaFile和TMetafileCanvas)
    如何将JPEG缩略图放到LISTVIEW中(delphi listview自绘图形)
    栈和队列
    SQL调优日志--内存问题
    Nancy之实现API
    JAVA和.NET互调用
    NET Core环境并创建运行ASP.NET网站
    React Native
  • 原文地址:https://www.cnblogs.com/lhj588/p/3269904.html
Copyright © 2011-2022 走看看