go4it

just do it

JPA视频学习(二)JPQL查询语句

可以使用位置参数和命名参数:

//@Test
	public void query(){
		//读取不用开启事务
		EntityManagerFactory fac=Persistence.createEntityManagerFactory("HelloJPAPU");
		EntityManager em=fac.createEntityManager();
		Query query=em.createQuery("select o from Person o where o.id=?3");
		query.setParameter(3, 1);//使用位置查询
		Person person=(Person) query.getSingleResult();//前提是此记录存在,否则这句话会报错
		System.out.println(person.getName());
		em.close();
		fac.close();
	}
	
	//@Test
	public void deletequery(){
		EntityManagerFactory fac=Persistence.createEntityManagerFactory("HelloJPAPU");
		EntityManager em=fac.createEntityManager();
		em.getTransaction().begin();
		Query query=em.createQuery("delete from Person o where o.id=?3");
		query.setParameter(3, 1);//使用位置参数
		query.executeUpdate();
		em.getTransaction().commit();
		em.close();
		fac.close();
	}
	
	@Test
	public void updatequery(){
		EntityManagerFactory fac=Persistence.createEntityManagerFactory("HelloJPAPU");
		EntityManager em=fac.createEntityManager();
		em.getTransaction().begin();
		Query query=em.createQuery("update Person o set o.name=:name where o.id=:id");
		query.setParameter("name", "persia");//使用命名参数
		query.setParameter("id", 2);
		query.executeUpdate();
		em.getTransaction().commit();
		em.close();
		fac.close();
	}

posted on 2009-07-25 16:25  cxccbv  阅读(598)  评论(0编辑  收藏  举报

导航