jpa对表的crud
原创
©著作权归作者所有:来自51CTO博客作者morris131的原创作品,请联系作者获取转载授权,否则将追究法律责任
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
"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 void findPersonById2(){
//相当于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 org.junit.Test;
import com.morris.entity.Person;
public class PersonDao {
private static EntityManager entityManager;
@BeforeClass
public static void before() {
entityManager = Persistence.createEntityManagerFactory("jpaDemo").createEntityManager();
entityManager.getTransaction().begin();
}
@Test
public void findPersonById(){
//相当于hibernate的get方法,不会延迟加载,没有找到会返回null
Person person = entityManager.find(Person.class, 1);
//System.out.println(person.getName());
entityManager.clear();
System.out.println(person.getName());
}
@Test
public void findPersonById2(){
//相当于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 void save() {
Person person = new Person("aaa",121);
entityManager.persist(person);//持久化一个对象,将数据保存到数据库中
}
@Test
public void delete(){
Person person = entityManager.find(Person.class, 3);
entityManager.remove(person);
}
@Test
public void update(){
Person person = entityManager.find(Person.class, 1);//相当于hibernate的get方法,不会延迟加载,没有找到会返回null
"bbb");
}
@AfterClass
public static void after(){
entityManager.getTransaction().commit();
entityManager.close();
}
}
|