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

     

  • 相关阅读:
    python的模块future用法实例解析
    strcmp函数和memcmp函数的用法区别及联系
    esp8266 smartconfig-智能配网分析和使用及注意事项
    ubuntu 18.04 安装并配置adb
    Markdown的常用方法总结
    mac下使用minicom几个注意事项
    最强Linux shell工具Oh My Zsh 指南
    ESP8266源码分析--打印的基本用法
    atom 在Ubuntu 18.04 上安装及基本使用
    ubuntu 查看端口被占用并删除端口
  • 原文地址:https://www.cnblogs.com/lhj588/p/3269904.html
Copyright © 2011-2022 走看看