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