JSQL查询
2019-09-08 09:39:27来源:博客园 阅读 ()
JSQL查询
JSQL
其特征与原生soL语句类似,并且完全面向对象,通过类名和属性访问,而不是表名和表的属性。
- sql:查询的是表和表中的字段
- jpql:查询的是实体类和类中的属性
查询全部 >> getResultList:直接将查询结果封装为list集合
sq1:SELECT * FROM cst_customer
jsql:from cn.itcast.domain.Customer (包名可以省略)
1 package cn.itcast.test; 2 import cn.itcast.utils.JpaUtils; 3 import org.junit.Test; 4 5 import javax.persistence.*; 6 import java.util.List; 7 /** 8 * 测试Jpql查询 9 */ 10 public class JpqlTest { 11 /* 12 *查询全部 13 *jsql:from cn.itcast.domain.Customer (包名可以省略) 14 *sq1:SELECT * FROM cst_customer 15 */ 16 @Test 17 public void testFindAll() { 18 //1.获取entityManager对象 19 EntityManager em = JpaUtils.getEntityManager(); 20 //2.开启事务 21 EntityTransaction tx = em.getTransaction(); 22 tx.begin(); 23 //3.查询全部 24 String jpql = "from Customer"; 25 //调用em.createQuery(jpql)先创建一个对象query,接收一个jsql语句 26 //创建Query查询对象,query对象才是执行jqp1的对象 27 Query query = em.createQuery(jpql); 28 //发送查询,并封装结果集 29 List list = query.getResultList(); 30 //遍历list并打印 31 for (Object o : list) { 32 System.out.println(o); 33 } 34 //4.提交事务 35 tx.commit(); 36 //5.释放资源 37 em.close(); 38 }}
-
使用jpql查询,统计客户的总数 >> getSingleResult:得到唯一的结果集
sq1:SELECT COUNT(cust_id)FROM cst_customer
jpql: select count(custId)from Customer
- 分页查询
>> getResultList:直接将查询结果封装为list集合
sq1:select*from cst_customer limit?,? 只写2,默认是0,2
jqp1:from Customer
1 @Test 2 public void testPage() { 3 //1.获取entityManager对象 4 EntityManager em = JpaUtils.getEntityManager(); 5 //2.开启事务 6 EntityTransaction tx = em.getTransaction(); 7 tx.begin(); 8 //3.查询全部 9 String jpql = "from Customer"; 10 //根据jsql语句创建Query查询对象 11 Query query = em.createQuery(jpql); 12 13 //起始索引 14 query.setFirstResult(0); 15 //每页查询的条数 16 query.setMaxResults(2); 17 18 //发送查询,并封装结果集 19 List list = query.getResultList(); 20 //遍历list并打印 21 for (Object o : list) { 22 System.out.println(o); 23 } 24 //4.提交事务 25 tx.commit(); 26 //5.释放资源 27 em.close(); 28 }}
案例:查询客户名称以“黑马”开头的客户 >> getResultList:直接将查询结果封装为list集合
sq1:SELECT * FROM cst_customer WHERE cust_name LIKE ?
jpql : from Customer where custName like ?
1 //1.查询全部 2 String jpql = "from Customer where custname like ? "; 3 //2.根据jsql语句创建Query查询对象 4 Query query = em.createQuery(jpql); 5 6 //3.对参数赋值--占位符参数 7 //第一个参数:占位符的索引位置(从1开始),第二个参数:取值 8 query.setParameter(1,"黑马%");
原文链接:https://www.cnblogs.com/xiaozhongfeixiang/p/11459276.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- java实现分页查询 2020-06-05
- mybatis模糊查询sql 2020-05-20
- 用一张表来存储数据状态,并且可以进行多状态精确查询;使用 2020-04-30
- 原创 记录一次线上Mysql慢查询问题排查过程 2020-03-27
- 【Elasticsearch】查询并删除匹配文档之_delete_by_query 2020-03-21
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash