importcom.domain.Customer;importcom.utils.JPAUtils;importorg.junit.Test;importjavax.persistence.EntityManager;importjavax.persistence.EntityTransaction;importjavax.persistence.Query;importjava.util.List;public classJPATest01 {//保存操作 persist()
@Testpublic voidTest01(){
Customer c=newCustomer();
c.setName("曹操");
c.setLovel("实诚");//1.获取EntityManager
EntityManager em=JPAUtils.createEntityManager();//2.获取事务开启事务
EntityTransaction tx =em.getTransaction();
tx.begin();//3.执行保存操作,persist()方法
em.persist(c);//释放资源
tx.commit();
em.close();
}//查询单个实体操作 find()立即加载
@Testpublic voidTest02_1(){//1.获取EntityManager
EntityManager em=JPAUtils.createEntityManager();//2.获取事务开启事务
EntityTransaction tx =em.getTransaction();
tx.begin();//3.查询出对象
Customer customer = em.find(Customer.class, 1);
System.out.println("===========");
System.out.println(customer);//释放资源
tx.commit();
em.close();
}//查询单个实体操作 getReference()延迟加载
@Testpublic voidTest02_2(){//1.获取EntityManager
EntityManager em=JPAUtils.createEntityManager();//2.获取事务开启事务
EntityTransaction tx =em.getTransaction();
tx.begin();//3.查询出对象
Customer customer = em.getReference(Customer.class, 1);
System.out.println("===========");
System.out.println(customer);//释放资源
tx.commit();
em.close();
}//保存merge()用来和并对象保存数据库,以托管状态为主
@Testpublic voidTest03(){//1.获取EntityManager
EntityManager em=JPAUtils.createEntityManager();//2.获取事务开启事务
EntityTransaction tx =em.getTransaction();
tx.begin();//3.查询出对象,快照保存
Customer customer = em.find(Customer.class, 1);
System.out.println(customer);
customer.setLovel("黄盖"); //快照保存
em.merge(customer);//释放资源
tx.commit();
em.close();
}//删除remove
@Testpublic voidTest04(){//1.获取EntityManager
EntityManager em=JPAUtils.createEntityManager();//2.获取事务开启事务
EntityTransaction tx =em.getTransaction();
tx.begin();//3.删除
Customer customer = em.find(Customer.class, 2);
em.remove(customer);//释放资源
tx.commit();
em.close();
}//查询所有
@Testpublic voidTest05(){//1.获取EntityManager
EntityManager em=JPAUtils.createEntityManager();//2.获取事务开启事务
EntityTransaction tx =em.getTransaction();
tx.begin();//3.获取Query对象//sql不能用* 要用别名
Query query = em.createQuery("select c from Customer c");
List list=query.getResultList();for(Object o : list) {
System.out.println((Customer)o);
}//释放资源
tx.commit();
em.close();
}//查询所有 有条件
@Testpublic voidTest06(){//1.获取EntityManager
EntityManager em=JPAUtils.createEntityManager();//2.获取事务开启事务
EntityTransaction tx =em.getTransaction();
tx.begin();//3.获取Query对象//sql 条件要使用‘?1’风格
Query query = em.createQuery("select c from Customer c where c.name like ?1 and c.lovel = ?2");
query.setParameter(1,"%曹%");
query.setParameter(2,"关爱兄弟");
List list=query.getResultList();for(Object o : list) {
System.out.println((Customer)o);
}//释放资源
tx.commit();
em.close();
}
}