码迷,mamicode.com
首页 > 其他好文 > 详细

jpa对表的crud

时间:2015-01-09 09:17:54      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:jpa   crud   

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 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

      

       person.setName("bbb");

      

      

      

    }

   

    @AfterClass

    public static void after(){

       entityManager.getTransaction().commit();

       entityManager.close();

    }

 

}

 

 

jpa对表的crud

标签:jpa   crud   

原文地址:http://blog.csdn.net/u022812849/article/details/42534009

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!