JPA(二)之CRUD操作

本文详细介绍了一个使用JUnit进行数据库操作测试的Java案例,包括保存、查找、更新和删除等操作,并探讨了不同测试方法的实现及可能遇到的问题。

修改PerTest.java

具体代码如下:

package junit.test;

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

import org.junit.Test;

import com.sonoi.bean.Person;

public class PerTest {

	@Test
	public void save() {
		EntityManagerFactory factory = Persistence
				.createEntityManagerFactory("unitname");
		EntityManager manager = factory.createEntityManager();
		manager.getTransaction().begin();
		//不能输入汉字!针对my操作系统
		manager.persist(new Person("nansheng"));
		manager.getTransaction().commit();
		manager.close();
		factory.close();
	}
	
	@Test
	public void find1() {
		EntityManagerFactory factory = Persistence.createEntityManagerFactory("unitname");
		EntityManager manager = factory.createEntityManager();
		Person person = manager.find(Person.class, 2);
		System.out.println(person.getName());
		manager.close();
		factory.close();
	}
	
	@Test
	public void find2() {
		EntityManagerFactory factory = Persistence.createEntityManagerFactory("unitname");
		EntityManager manager = factory.createEntityManager();
		Person person = manager.getReference(Person.class, 1);
		System.out.println(person.getName());
		manager.close();
		factory.close();
	}
	
	@Test
	public void update1() {
		EntityManagerFactory factory = Persistence.createEntityManagerFactory("unitname");
		EntityManager manager = factory.createEntityManager();
		manager.getTransaction().begin();
		Person person = manager.getReference(Person.class, 1);
		person.setName("bbbbbbb");
		manager.getTransaction().commit();
		manager.close();
		factory.close();
	}
	
	//此更新方法有问题
	@Test
	public void update2() {
		EntityManagerFactory factory = Persistence.createEntityManagerFactory("unitname");
		EntityManager manager = factory.createEntityManager();
		manager.getTransaction().begin();
		Person person = manager.getReference(Person.class, 1);
		//增加此句代码会出错
		manager.clear();
//		manager.merge(person);
		person.setName("hhhhhhh");
		manager.getTransaction().commit();
		manager.close();
		factory.close();
	}
	
	@Test
	public void delete() {
		EntityManagerFactory factory = Persistence.createEntityManagerFactory("unitname");
		EntityManager manager = factory.createEntityManager();
		manager.getTransaction().begin();
		Person person = manager.getReference(Person.class, 2);
		manager.remove(person);
		manager.getTransaction().commit();
		manager.close();
		factory.close();
	}
	
}

 

转载于:https://my.oschina.net/beanGo/blog/168230

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值