- 1、本文档共33页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
经典Java EE课程
段鹏松
第11章 JPA的查询支持
掌握JPA查询的基本流程
掌握JPQL的基本语法
了解在JPA中使用原生SQL查询
课程目标
概述
JPA定义了一套属于面向对象的查询语言:Java Persistence Query Language(JPQL)
JPQL是面向对象的查询语言,因此它完全可以理解继承、多态和关联等特性。
JPQL内置了大量函数,极大地方便了数据库查询操作。
目 录
查询API
执行查询
JPQl语法
批量更新和批量删除
原生SQL查询
面向对象的JPQL
SQL和JPQL最大的区别
SQL是面向数据库的查询语言
JPQL是面向对象的查询语言,类似HQL
JPQL的基本语法格式
select 实体别名.属性名,...
from 实体名 [as] 实体别名
where 实体别名.实体属性 op 比较值
查询API简介
JPQL的查询主要由Query接口来完成
JPQL查询的步骤:
Query的创建
createQuery(String JPQLString)
其他重载方法
Query设置查询参数
setParameter(...)
其他重载方法
Query执行查询
getResultList()
其他查询方法
目 录
查询API
执行查询
JPQl语法
批量更新和批量删除
原生SQL查询
执行查询
位置参数:
?位置编号
命名参数:
:参数名
查询结果
一条记录,使用getSingleResult()
多条记录,使用getResultList()
实际操作演示
简单示例(位置参数查询)
Query query =em.createQuery
(select p from Flentity p
where p.f_name=?1);
query.setParameter(1,A1);
return query.getResultList();
简单示例(命名参数查询)
Query query =em.createQuery
(select p from Flentity p
where p.f_name=:name);
query.setParameter(“name”,A1);
return query.getResultList();
目 录
查询API
执行查询
JPQl语法
批量更新和批量删除
原生SQL查询
概述
经过前面的学习,已经掌握了JPQL的基本查询流程。
本小节主要讲述JPQL查询的细节,知识点较为零碎。
使用from子句
from子句用于查询指定的实体,其后紧跟实体类的类名。常用的格式如下:
from 实体类名 [as] 实体别名
尽量避免在from后跟多个实体类名
实际操作演示
使用select子句
select子句用于选择指定的属性或之际选择某个实体。常用的格式如下:
select 实体别名.实体属性1,实体别名.实体属性2...... from......
如果select后有多个项,则查询出来的集合元素就是相应类型的数组。
实际操作演示
查询中使用构造器
JPQL允许在查询中根据选出的属性来创建对象。常用的格式如下:
select new className(属性名1,属性名2,...) from ...
必须存在相应的构造函数。
查询出来的集合元素就是相应类型的构造类型。
实际操作演示
where子句和条件表达式
where子句用于筛选查询的结果,缩小查询的范围。常用的格式如下:
select 实体别名.实体属性1,实体别名.实体属性2...... from...... where 条件表达式
条件表达式中可以采用精确查找,也可以采用模糊查找。
常用的条件运算符都支持。
实际操作演示
使用JPQL函数
JPQL内置了大量功能强大的函数,可以更有效的执行查询,设置查询结果。
JPQL的内置函数有:
字符串函数
数学函数
日期、时间函数
实际操作演示
多态查询
当查询实体类时,不仅可以查询该实体类的全部实例,还会查询出该类的子类的全部实例。
必须具有继承关系。
实际操作演示
关联和连接
JPQL查询除了支持对继承映射的实体进行多态查询之外,也支持对关联映射的实体进行多表连接查询。
这种多表连接查询既可以是隐式连接,也可以是显示连接。
实际操作演示
使用order by进行排序
查询返回的集合可以根据实体或符合属性的任何属性使用order by进行排序。
还可以使用asc或desc关键字指定升序或降序的排序规则。
默认是升序规则。
实际操作演示
聚集函数和分组
JPQL的聚集函数
avg
count
max
mi
您可能关注的文档
- 超级面包屑分面查找.pdf
- 第10讲 第2节第7节 循环群.ppt
- 超级无敌奖门人里的游戏名称与游戏规则.doc
- 第10讲 数组与矩阵.ppt
- 第10节 创建 Web 应用程序.ppt
- 第10节 动态规划.ppt
- 超声换能器和匹配电路.ppt
- 第10节 多文档应用程序.ppt
- 超疏水导电聚苯胺界面聚合.pdf
- 第10节 其它网络常用服务.ppt
- 第十一章 电流和电路专题特训二 实物图与电路图的互画 教学设计 2024-2025学年鲁科版物理九年级上册.docx
- 人教版七年级上册信息技术6.3加工音频素材 教学设计.docx
- 5.1自然地理环境的整体性 说课教案 (1).docx
- 4.1 夯实法治基础 教学设计-2023-2024学年统编版九年级道德与法治上册.docx
- 3.1 光的色彩 颜色 电子教案 2023-2024学年苏科版为了八年级上学期.docx
- 小学体育与健康 四年级下册健康教育 教案.docx
- 2024-2025学年初中数学九年级下册北京课改版(2024)教学设计合集.docx
- 2024-2025学年初中科学七年级下册浙教版(2024)教学设计合集.docx
- 2024-2025学年小学信息技术(信息科技)六年级下册浙摄影版(2013)教学设计合集.docx
- 2024-2025学年小学美术二年级下册人美版(常锐伦、欧京海)教学设计合集.docx
文档评论(0)