1.1. Jpa对表的crud操作
1.1.1. 增加
public void save() { Person person = new Person("aaa",121); entityManager.persist(person);//持久化一个对象,将数据保存到数据库中 } |
1.1.2. 修改
public void update(){ Person person = entityManager.find(Person.class, 1);//相当于hibernate的get方法,不会延迟加载,没有找到会返回null person.setName("bbb"); } |
1.1.3. 删除
public void delete(){ Person person = entityManager.find(Person.class, 3); entityManager.remove(person); } |
1.1.4. 查询
public void findPersonById(){ //相当于hibernate的get方法,不会延迟加载,没有找到会返回null Person person = entityManager.find(Person.class, 1); entityManager.clear(); System.out.println(person.getName()); } public //相当于hibernate的load方法,不会延迟加载,没有找到在真正使用的时候会报异常 Person person = entityManager.getReference(Person.class, 1); entityManager.clear();//将所有的持久态的对象变为游离态 //System.out.println(person.getName());//报异常 entityManager.merge(person);//将游离态的对象变为持久态 } |
1.1.5. 源代码
PersonDao.java |
package com.morris.dao.impl; import javax.persistence.EntityManager; import javax.persistence.Persistence; import org.junit.AfterClass; import org.junit.BeforeClass; import import com.morris.entity.Person; public private @BeforeClass public entityManager = Persistence.createEntityManagerFactory("jpaDemo").createEntityManager(); entityManager.getTransaction().begin(); } @Test public //相当于hibernate的get方法,不会延迟加载,没有找到会返回null Person person = entityManager.find(Person.class, 1); //System.out.println(person.getName()); entityManager.clear(); System.out.println(person.getName()); } @Test public //相当于hibernate的load方法,不会延迟加载,没有找到在真正使用的时候会报异常 Person person = entityManager.getReference(Person.class, 1); entityManager.clear();//将所有的持久态的对象变为游离态 //System.out.println(person.getName());//报异常 entityManager.merge(person);//将游离态的对象变为持久态 //System.out.println(person.getName());//报异常 } @Test public Person person = new Person("aaa",121); entityManager.persist(person);//持久化一个对象,将数据保存到数据库中 } @Test public Person person = entityManager.find(Person.class, 3); entityManager.remove(person); } @Test public Person person = entityManager.find(Person.class, 1);//相当于hibernate的get方法,不会延迟加载,没有找到会返回null person.setName("bbb"); } @AfterClass public entityManager.getTransaction().commit(); entityManager.close(); } } |