packagecom.youcent;importjava.util.List;importjavax.persistence.EntityManager;importjavax.persistence.EntityManagerFactory;importjavax.persistence.Persistence;importjavax.persistence.Query;importorg.junit.Test;public classTestUser {//添加
@Testpublic voidtestSave() {
EntityManagerFactory factory= Persistence.createEntityManagerFactory("JPA");
EntityManager em=factory.createEntityManager();
em.getTransaction().begin();
User u= newUser();
u.setName("jerry");
em.persist(u);
em.getTransaction().commit();
em.close();
factory.close();
}//删除
@Testpublic voidtestRemove() {
EntityManagerFactory factory= Persistence.createEntityManagerFactory("JPA");
EntityManager em=factory.createEntityManager();
em.getTransaction().begin();
User u= em.find(User.class,2);
em.remove(u);
em.getTransaction().commit();
em.close();
factory.close();
}//修改
@Testpublic voidupdate() {
EntityManagerFactory factory= Persistence.createEntityManagerFactory("JPA");
EntityManager em=factory.createEntityManager();
em.getTransaction().begin();//第一种方法//User u = em.find(User.class,1);//u.setName("tom");//第二种方法
User u1 = newUser();
u1.setId(3);
u1.setName("xyz");
em.merge(u1);
em.getTransaction().commit();
em.close();
factory.close();
}//hql 取得所有对象
@Testpublic voidfindAll() {
EntityManagerFactory factory= Persistence.createEntityManagerFactory("JPA");
EntityManager em=factory.createEntityManager();
Query query= em.createQuery("select u from User u");
List list =query.getResultList();for(User u : list){
System.out.println(u.toString());
}
em.close();
factory.close();
}//hql 取得单一结果 ,使用位"置参数查询"
@Testpublic voidfindById() {
EntityManagerFactory factory= Persistence.createEntityManagerFactory("JPA");
EntityManager em=factory.createEntityManager();
Query query= em.createQuery("select u from User u where u.id=?1"); //表示明确指定从1开始设置参数
query.setParameter(1, 4);
User u= (User) query.getSingleResult(); //取得单一结果
System.out.println(u.toString());
em.close();
factory.close();
}//hql 取得单一结果 ,同样任何查询可以使用"命名参数"查询
@Testpublic voidfindByHql() {
EntityManagerFactory factory= Persistence.createEntityManagerFactory("JPA");
EntityManager em=factory.createEntityManager();
Query query= em.createQuery("select u from User u where u.id=:id"); //表示明确指定从1开始设置参数
query.setParameter("id", 4);
User u= (User) query.getSingleResult(); //取得单一结果
System.out.println(u.toString());
em.close();
factory.close();
}//hql分页查询
@Testpublic voidfindByPage() {
EntityManagerFactory factory= Persistence.createEntityManagerFactory("JPA");
EntityManager em=factory.createEntityManager();
Query query= em.createQuery("select u from User u");
query.setFirstResult(1); //表示从第二条记录开始
query.setMaxResults(2); //向后去两条
List list =query.getResultList();for(User u : list){
System.out.println(u.toString());
}
em.close();
factory.close();
}//hql更新查询,须开事务
@Testpublic voidupdateByhql() {
EntityManagerFactory factory= Persistence.createEntityManagerFactory("JPA");
EntityManager em=factory.createEntityManager();
em.getTransaction().begin();
Query query= em.createQuery("update User u set u.name=:name where u.id=:id");
query.setParameter("name", "tom1");
query.setParameter("id", 1);int rows = query.executeUpdate(); //更新查询要执行的方法
if(rows>0){
System.out.println("更新成功!");
}
em.getTransaction().commit();
em.close();
factory.close();
}//hql删除查询,须开事务
@Testpublic voidremoveByhql() {
EntityManagerFactory factory= Persistence.createEntityManagerFactory("JPA");
EntityManager em=factory.createEntityManager();
em.getTransaction().begin();
Query query= em.createQuery("delete from User u where u.id=:id");
query.setParameter("id", 4);int rows = query.executeUpdate(); //更新查询要执行的方法
if(rows>0){
System.out.println("删除成功!");
}
em.getTransaction().commit();
em.close();
factory.close();
}
}