JPA 持久化操作

[color=red][b]保存[/b][/color]
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();
}
}


[color=red][b]删除[/b][/color]
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();
}
}


[color=red][b]修改[/b][/color]
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();
}
}


[color=red][b]查询[/b][/color]
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()方法
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值