JPA 持久化操作

保存
package Test;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

import cn.com.jyp.model.Person;

public class Test {
	@org.junit.Test
	public void save() {
		EntityManagerFactory factory = Persistence
				.createEntityManagerFactory("jpa");// 持久化单元名
		EntityManager em = factory.createEntityManager();
		Person person = new Person();
		person.setName("人");
		em.getTransaction().begin();
		em.persist(person);// 保存
		em.getTransaction().commit();
		em.close();
		factory.close();
	}
}


删除
package Test;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.persistence.Query;

import cn.com.jyp.model.Person;

public class Test {
	@org.junit.Test
	public void delete1() {
		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();
	}

	@org.junit.Test
	public void delete2() {
		EntityManagerFactory factory = Persistence
				.createEntityManagerFactory("jpa");// 持久化单元名
		EntityManager em = factory.createEntityManager();
		em.getTransaction().begin();
		Query query = em.createQuery("delete from Person p where p.id=?1");
		query.setParameter(1, 2);
		query.executeUpdate();// 删除
		em.getTransaction().commit();
		em.close();
		factory.close();
	}
}


修改
package Test;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.persistence.Query;

import cn.com.jyp.model.Person;

public class Test {
	@org.junit.Test
	public void update1() {
		EntityManagerFactory factory = Persistence
				.createEntityManagerFactory("jpa");// 持久化单元名
		EntityManager em = factory.createEntityManager();
		em.getTransaction().begin();
		Person person = em.find(Person.class, 1);
		person.setName("修改name");// 修改
		em.getTransaction().commit();
		em.close();
		factory.close();
	}

	@org.junit.Test
	public void update2() {
		EntityManagerFactory factory = Persistence
				.createEntityManagerFactory("jpa");// 持久化单元名
		EntityManager em = factory.createEntityManager();
		em.getTransaction().begin();
		Person person = em.find(Person.class, 1);// 托管状态
		em.clear();// 把实体管理器中的实体变成游离状态
		person.setName("修改name");// 游离状态
		em.merge(person);// 修改 (marge方法把游离状态对象的更新同步到数据库)
		em.getTransaction().commit();
		em.close();
		factory.close();
	}

	@org.junit.Test
	public void update3() {
		EntityManagerFactory factory = Persistence
				.createEntityManagerFactory("jpa");// 持久化单元名
		EntityManager em = factory.createEntityManager();
		em.getTransaction().begin();
		Query query = em
				.createQuery("update Person p set p.name:name where p.id=:id");
		query.setParameter("name", "xxx");
		query.setParameter("id", 2);
		query.executeUpdate();// 修改
		em.getTransaction().commit();
		em.close();
		factory.close();
	}
}


查询
package Test;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.persistence.Query;

import cn.com.jyp.model.Person;

public class Test {
	@org.junit.Test
	public void query() {
		EntityManagerFactory factory = Persistence
				.createEntityManagerFactory("jpa");// 持久化单元名
		EntityManager em = factory.createEntityManager();
		Query query = em.createQuery("select p from Person p where p.id=?1");
		query.setParameter(1, 2);
		Person person = (Person) query.getSingleResult();// 查询
		// List<Person> list = query.getResultList();
		em.close();
		factory.close();
	}

	@org.junit.Test
	public void getPerson() {
		EntityManagerFactory factory = Persistence
				.createEntityManagerFactory("jpa");// 持久化单元名
		EntityManager em = factory.createEntityManager();
		Person person = em.find(Person.class, 1);// 查询
		em.close();
		factory.close();
	}
}

find()方法相当于get()方法
getReference()方法相当于load()方法

你可能感兴趣的:(jpa,JUnit)