5.jpa的(sql)查询
jpaSQL语句:面向对象的sql语句,jpa标准的sql语法
查询方法:
1.位参数查询 select o from Person o where o.id=?1—>query.setParameter(1,2);
2.命名查询 select o from Person o where o.id=:id—>query.setParameter("id",2);
查询结果:1.列表 2.唯一值(对象)
查询类型:普通查询,删除查询,更新查询
jpaSQL语句:面向对象的sql语句,jpa标准的sql语法
查询方法:
1.位参数查询 select o from Person o where o.id=?1—>query.setParameter(1,2);
2.命名查询 select o from Person o where o.id=:id—>query.setParameter("id",2);
查询结果:1.列表 2.唯一值(对象)
查询类型:普通查询,删除查询,更新查询
ps:进行数据的更改必须启动事务。-删除查询和更新查询必须开启事务
- @Test
- public void querysql(){
- EntityManagerFactory factory=Persistence.createEntityManagerFactory("MyJpa");
- EntityManager em=factory.createEntityManager();
- //面向对象的sql语句
- Query query=em.createQuery("select o from Person o where o.id=?");
- query.setParameter(1, 2);
- Person p=(Person) query.getSingleResult();
- System.out.println(p.getName());
- em.close();
- factory.close();
- }
- @Test
- public void deletesql(){
- EntityManagerFactory factory=Persistence.createEntityManagerFactory("MyJpa");
- EntityManager em=factory.createEntityManager();
- em.getTransaction().begin();
- //面向对象的sql语句
- Query query=em.createQuery("delete from Person o where o.id=?");
- query.setParameter(1, 3);
- query.executeUpdate();
- em.getTransaction().commit();
- em.close();
- factory.close();
- }
- @Test
- public void updatesql(){
- EntityManagerFactory factory=Persistence.createEntityManagerFactory("MyJpa");
- EntityManager em=factory.createEntityManager();
- em.getTransaction().begin();
- //面向对象的sql语句
- Query query=em.createQuery("update Person o set o.sex=? where o.id=?");
- query.setParameter(1, Sex.WORMAN);
- query.setParameter(2, 3);
- query.executeUpdate();
- em.getTransaction().commit();
- em.close();
- factory.close();
- }