JPQL详解
JPA
在说jpql之前必须要说一下什么是JPA,否则在后续学习的时候,你会弄混的。JPA是一种规范,什么是规范呢,规范就是一个钥匙可以开这把锁。一般对于规范来说我们都是用接口,如果有人要我们则实现我们的接口就可以了,所以我们针对的面向接口编程。。另外再说一个新词叫做ORM。他表示什么呢?Object·/Relation Mapping 对象/关系数据库映射,他完成的是面向对象的编程语言到关系型数据库的映射,所以你可以理解为ORM其实就是应用程序和数据库的桥梁。
JPA规范本质上就是一种ORM规范。
下面说一下关于JPA规范和JPA实现他们之间的关系,以及JPQL和HIbernate等之间的关系。其实用一张图就可以说明他们之间的关系 
JPA从哪来,名词有那些
上面基本上都是在讲解什么是jpa和jpa实现的其他技术有哪些,他们之间的概念,下面介绍的是JPA来自于哪里?
JPA是在Ejb3出现的时候同时出现的,他的出现其实上代替了我们EJB2中的实体bean,但是JPA并不属于我们EJB3规范的内容,他是一个独立的规范,他的应用场景不仅仅是在javaEE中可以用,而且也可以在javase中可以。
名词介绍:
1。实体:实体就是一个普通的POJO,ps当你看到POJO的时候一定不要感觉很难,POJO其实就是一个普通的java类而已,只是名字高大尚了而已。实体的作用就是辅助我们orm.xml映射文件或者是Annotation,orm.xml是针对hibernate的,Annotation针对的Ejb注解形式的。实体和底层数据库之间进行映射的。
2。EntityManager:上面所说的实体是与我们数据库映射的,但是没有起到持久化的作用,只有用上EntityManager的实体进行操作的时候才会有持久化能力,什么是持久化能力呢?下面的博客链接讲解了
https://blog.csdn.net/sunyadongwanghbjm/article/details/1765073
3。JPQL查询:Hibernate提供的是HQL查询,而JPA提供的是JPQL查询语言

JPQL
前面的前提终于讲完了,下面我们来说一下关于JPQL的内容
JPQL与Sql比较
jpql与SQL的区别就是SQL是面向对象关系数据库,他操作的是数据表和数据列,而jpql操作的对象是实体对象和实体属性
JPQL 语句基本格式
下面是JPQL的基本格式,根据基本格式我们执行jpql语句
select 实体别名.属性名, 实体别名.属性名 from 实体名 as 实体别名 where 实体别名.实体属性 op 比较值
1
具体事例
select p.name from book as p
1
在写语句的时候我们可能需要使用到参数,如果是位置参数使用“?” ,如果是参数则使用 “:XX “
JPQL 查询基本格式
jpql的查询语句设计非常简单。主要是由于Query接口来完成的,而我们的Query接口是由EntityManager创建出来的。ps上面提过什么是EntityManage。
Query createNamedQuery(String name):创建查询的名称来创建一个命名查询,使用sql和jpql都可以
Query createNativeQuery(String SQLString)根据的原生的sql语句查询
QuerycreateQuery(String jpqlString)根据指定的JPQL语句创建一个查询
jpql传参数我们使用的Query setParmeter(String name, Object value),还有其他是日期类型的,大家可以在查阅
JPQL 执行基本格式
当我们的参数和语句完事之后我们就应该执行,对于jpql执行分为以下几种
List getResultList()执行JPQL的select语句,并且返回的是list集合
Object getSingleResult()执行返回的那个结果的select语句
int executeupdate()表示执行批量的删除和更新
Query setFirstResult(int startPosition)设置查询结果从第几条记录开始
Query setMaxResults(int maxResult)表示设置查询最多返回几条语句
T
JPQL详解的更多相关文章
- SPRINGBOOT注解最全详解(
# SPRINGBOOT注解最全详解(整合超详细版本) 使用注解的优势: 1.采用纯java代码,不在需要配置繁杂的xml文件 ...
- Linq之旅:Linq入门详解(Linq to Objects)
示例代码下载:Linq之旅:Linq入门详解(Linq to Objects) 本博文详细介绍 .NET 3.5 中引入的重要功能:Language Integrated Query(LINQ,语言集 ...
- 架构设计:远程调用服务架构设计及zookeeper技术详解(下篇)
一.下篇开头的废话 终于开写下篇了,这也是我写远程调用框架的第三篇文章,前两篇都被博客园作为[编辑推荐]的文章,很兴奋哦,嘿嘿~~~~,本人是个很臭美的人,一定得要截图为证: 今天是2014年的第一天 ...
- EntityFramework Core 1.1 Add、Attach、Update、Remove方法如何高效使用详解
前言 我比较喜欢安静,大概和我喜欢研究和琢磨技术原因相关吧,刚好到了元旦节,这几天可以好好学习下EF Core,同时在项目当中用到EF Core,借此机会给予比较深入的理解,这里我们只讲解和EF 6. ...
- Java 字符串格式化详解
Java 字符串格式化详解 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 文中如有纰漏,欢迎大家留言指出. 在 Java 的 String 类中,可以使用 format() 方法 ...
- Android Notification 详解(一)——基本操作
Android Notification 详解(一)--基本操作 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/Notification 文中如有纰 ...
- Android Notification 详解——基本操作
Android Notification 详解 版权声明:本文为博主原创文章,未经博主允许不得转载. 前几天项目中有用到 Android 通知相关的内容,索性把 Android Notificatio ...
- Git初探--笔记整理和Git命令详解
几个重要的概念 首先先明确几个概念: WorkPlace : 工作区 Index: 暂存区 Repository: 本地仓库/版本库 Remote: 远程仓库 当在Remote(如Github)上面c ...
- Drawable实战解析:Android XML shape 标签使用详解(apk瘦身,减少内存好帮手)
Android XML shape 标签使用详解 一个android开发者肯定懂得使用 xml 定义一个 Drawable,比如定义一个 rect 或者 circle 作为一个 View 的背景. ...
随机推荐
- ASCII 和 Unicode 编码的由来
大话数据结构上的说明: 网络博文的说明:
- unity项目针对IOS及Android平台的音频压缩格式
IOS : 建议采用MP3格式, Android : 建议采用Vorbis格式, 因为这两种格式分别在这两个平台上有硬件解码的支持, 硬件解码比软件解码快.
- Java成员变量和局部变量
Java成员变量和局部变量 一.成员变量和局部变量 二.static关键字 三.成员变量和静态变量区别 四.main函数 五.静态函数什么时候用 六.静态代码块 七.构造代码块 构造代码块先于构造函数 ...
- Python处理HTML转义字符
抓网页数据经常遇到例如>或者 这种HTML转义符,抓到字符串里很是烦人. 比方说一个从网页中抓到的字符串: html = '<abc>' 用Python可以这样处理: import ...
- LeetCode--035--搜索插入位置
问题描述: 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引.如果目标值不存在于数组中,返回它将会被按顺序插入的位置. 你可以假设数组中无重复元素. 方法1:for 循环 class S ...
- Confluence 6 导入 Active Directory 服务器证书 - UNIX
为了让你的应用服务器能够信任你的目录服务器.你目录服务器上导出的证书需要导入到你应用服务器的 Java 运行环境中.JDK 存储了信任的证书,这个存储信任证书的文件称为一个 keystore.默认的 ...
- Cron\CronExpression::setPart("24")
利用laravle实现定时器的功能的时候,报错说:Cron\CronExpression::setPart("24"). 后来发现是时间设置的问题,他不能设置("24:0 ...
- VS2010-自定义控件
1.自定义控件 (1)新建—项目,项目模板选择“类库”,取名smControl,填写项目文件保存目录,点击确定 (2)完成后在解决方案资源管理器中删除类Class1 (3)添加“用户控件”——在解决方 ...
- ORACLE11G内存管理参数
今天,对ORACLE11G的几个内存参数看了一下,记录如下,大家可以参考: 1.首先,在ORACLE11G的INIT.ORA里,有“__”开头的参数,也就是以两个下划线开头的参数,这种参数应该是系统自 ...
- JavaScript 运行机制详解:Event Loop——续
转自:http://www.ruanyifeng.com/blog/2014/10/event-loop.html 五.定时器 除了放置异步任务的事件,"任务队列"还可以放置定时事 ...