hibernate和jpa连接mysql_JPA和hibernate

本文展示了如何使用JPA和Hibernate进行MySQL数据库的增删查改操作。通过@Test注解的方法,包括持久化对象(persist)、查找实体(find/getReference)、更新(merge)、删除(remove)以及条件查询等基本操作。
摘要由CSDN通过智能技术生成

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();

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值