赞
踩
jpql介绍。JPQL全称Java Persistence Query Language。
查询步骤:
jpql查询与SQL查询的语法区别:
查询全部客户数据:
测试代码:
@Test public void testFindAll(){ //1、获取entityManager对象 EntityManager em = JpaUtils.getEntityManager(); //2、开启事务 EntityTransaction tx = em.getTransaction(); tx.begin(); //3、查询全部 //from cn.itcast.domain.Customer 或者from Customer都可以 String jpql = "from cn.itcast.domain.Customer"; Query query = em.createQuery(jpql);//创建query查询对象,query对象才是执行jpql的对象 //发送查询,并封装结果集 List list = query.getResultList(); for (Object obj:list) { System.out.println(obj); } //4、提交事务 tx.commit(); //5、释放资源 em.close(); }
排序查询倒叙查询全部客户(根据ID倒叙)
public void testOrders(){ //1、获取entityManager对象 EntityManager em = JpaUtils.getEntityManager(); //2、开启事务 EntityTransaction tx = em.getTransaction(); tx.begin(); //3、查询全部 //from cn.itcast.domain.Customer 或者from Customer都可以 String jpql = "from Customer order by custId desc"; Query query = em.createQuery(jpql);//创建query查询对象,query对象才是执行jpql的对象 //发送查询,并封装结果集 List list = query.getResultList(); for (Object obj:list) { System.out.println(obj); } //4、提交事务 tx.commit(); //5、释放资源 em.close(); }
统计客户的总数
public void testCount(){ //1、获取entityManager对象 EntityManager em = JpaUtils.getEntityManager(); //2、开启事务 EntityTransaction tx = em.getTransaction(); tx.begin(); //3、查询全部 //a、使用jpql语句创建query查询对象 String jpql = "select count(custId) from Customer"; Query query = em.createQuery(jpql);//创建query查询对象,query对象才是执行jpql的对象 //b、对参数赋值 //c、发送查询,并封装结果集 /** * getResultList : 直接将查询结果封装为list集合 * getSingleResult : 得到唯一的结果集 */ Object result = query.getSingleResult(); System.out.println(result); //4、提交事务 tx.commit(); //5、释放资源 em.close(); }
分页查询
public void testPaged(){ //1、获取entityManager对象 EntityManager em = JpaUtils.getEntityManager(); //2、开启事务 EntityTransaction tx = em.getTransaction(); tx.begin(); //3、查询全部 //a、使用jpql语句创建query查询对象 String jpql = "from Customer"; Query query = em.createQuery(jpql);//创建query查询对象,query对象才是执行jpql的对象 //b、对参数赋值---分页参数 //起始索引 query.setFirstResult(0); //每页查询的条数 query.setMaxResults(2); //c、发送查询,并封装结果集 /** * getResultList : 直接将查询结果封装为list集合 * getSingleResult : 得到唯一的结果集 */ List list = query.getResultList(); for (Object obj : list) { System.out.println(obj); } //4、提交事务 tx.commit(); //5、释放资源 em.close(); }
条件查询
案例:查询客户名称以‘谷歌’开头的客户
public void testCondition(){ //1、获取entityManager对象 EntityManager em = JpaUtils.getEntityManager(); //2、开启事务 EntityTransaction tx = em.getTransaction(); tx.begin(); //3、查询全部 //a、使用jpql语句创建query查询对象 String jpql = "from Customer where custName like ?"; Query query = em.createQuery(jpql);//创建query查询对象,query对象才是执行jpql的对象 //b、对参数赋值---占位符参数 //第一个参数:占位符的索引位置(从1开始),第二个参数:取值 query.setParameter(1,"谷歌"); //c、发送查询,并封装结果集 /** * getResultList : 直接将查询结果封装为list集合 * getSingleResult : 得到唯一的结果集 */ List list = query.getResultList(); for (Object obj : list) { System.out.println(obj); } //4、提交事务 tx.commit(); //5、释放资源 em.close(); }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。