在PersonTest.java类中添加如下代码进行测试:
@Test
public void query(){
EntityManagerFactory factory
= Persistence.createEntityManagerFactory("sunft_first");
EntityManager em = factory.createEntityManager();
//参数占位符是固定写法
Query query = em.createQuery("select o from Person o where o.id = ?1");
query.setParameter(1, 12);
//如果查找不到则会抛出异常
//Person person = (Person) query.getSingleResult();
//System.out.println(person.getName());
List<Person> persons = query.getResultList();
for(Person person : persons){
System.out.println(person.getName());
}
em.close();
factory.close();
}
@Test
public void deletequery(){
EntityManagerFactory factory
= Persistence.createEntityManagerFactory("sunft_first");
EntityManager em = factory.createEntityManager();
em.getTransaction().begin();//开始事务
//参数占位符是固定写法
Query query = em.createQuery("delete from Person o where o.id = ?1");
query.setParameter(1, 12);
//如果数据库中不存在该记录,也不会报错
query.executeUpdate();
em.getTransaction().commit();
em.close();
factory.close();
}
@Test
public void queryupdate(){
EntityManagerFactory factory
= Persistence.createEntityManagerFactory("sunft_first");
EntityManager em = factory.createEntityManager();
em.getTransaction().begin();//开始事务
//参数占位符是固定写法
Query query = em.createQuery("update Person o set o.name = :name where o.id = :id");
query.setParameter("name", "XXX");
query.setParameter("id", 14);
//如果数据库中不存在该记录,也不会报错
query.executeUpdate();
em.getTransaction().commit();
em.close();
factory.close();
}