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