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详解的更多相关文章

  1. SPRINGBOOT注解最全详解(

    #     SPRINGBOOT注解最全详解(整合超详细版本)          使用注解的优势:               1.采用纯java代码,不在需要配置繁杂的xml文件           ...

  2. Linq之旅:Linq入门详解(Linq to Objects)

    示例代码下载:Linq之旅:Linq入门详解(Linq to Objects) 本博文详细介绍 .NET 3.5 中引入的重要功能:Language Integrated Query(LINQ,语言集 ...

  3. 架构设计:远程调用服务架构设计及zookeeper技术详解(下篇)

    一.下篇开头的废话 终于开写下篇了,这也是我写远程调用框架的第三篇文章,前两篇都被博客园作为[编辑推荐]的文章,很兴奋哦,嘿嘿~~~~,本人是个很臭美的人,一定得要截图为证: 今天是2014年的第一天 ...

  4. EntityFramework Core 1.1 Add、Attach、Update、Remove方法如何高效使用详解

    前言 我比较喜欢安静,大概和我喜欢研究和琢磨技术原因相关吧,刚好到了元旦节,这几天可以好好学习下EF Core,同时在项目当中用到EF Core,借此机会给予比较深入的理解,这里我们只讲解和EF 6. ...

  5. Java 字符串格式化详解

    Java 字符串格式化详解 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 文中如有纰漏,欢迎大家留言指出. 在 Java 的 String 类中,可以使用 format() 方法 ...

  6. Android Notification 详解(一)——基本操作

    Android Notification 详解(一)--基本操作 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/Notification 文中如有纰 ...

  7. Android Notification 详解——基本操作

    Android Notification 详解 版权声明:本文为博主原创文章,未经博主允许不得转载. 前几天项目中有用到 Android 通知相关的内容,索性把 Android Notificatio ...

  8. Git初探--笔记整理和Git命令详解

    几个重要的概念 首先先明确几个概念: WorkPlace : 工作区 Index: 暂存区 Repository: 本地仓库/版本库 Remote: 远程仓库 当在Remote(如Github)上面c ...

  9. Drawable实战解析:Android XML shape 标签使用详解(apk瘦身,减少内存好帮手)

    Android XML shape 标签使用详解   一个android开发者肯定懂得使用 xml 定义一个 Drawable,比如定义一个 rect 或者 circle 作为一个 View 的背景. ...

随机推荐

  1. web前端设计规范

    hi,这里写出一点自己对web产品开发的一点粗浅的规范认识,一切为了敏捷开发哈哈. 1.流程. (1) 当产品给出原型和产品文档. (2)设计师更据原型,开始设计产品的效果图. (3)设计师设计完毕后 ...

  2. English Words Type

    经常见到的: v = 动词,兼指及物动词和不及物动词,verb的缩写 n = 名词,noun的缩写 adj = 形容词, adjective的缩写 adv.表示副词, adverb的缩写 prep.表 ...

  3. English trip V1 - 8.What's in My Bag? 我的包里面有什么? Teacher:Corrine Key: plular(复数) and singular(单数)

    In this lesson you will learn to talk about the things you have.   您将学习如何谈论您拥有的东西 课上内容(Lesson) What' ...

  4. English trip -- VC(情景课)1 E Writing

    Talk with a partner ['pɑːtnə] (伙伴)  与同伴说一说 Comple the words 写全单词 first second third last name area c ...

  5. Tips for Sync Vimtex and PDF

    vimtex synctex: \lv. skim synctex: to display the TeX source line corresponding to a point in the PD ...

  6. linux--多进程进行文件拷贝

    学习IO的时候,我们都曾经利用文件IO函数,标准IO函数都实现了对文件的拷贝, 对某一个文件进行拷贝时,我们可以考虑一下几种方式: a.单进程拷贝: 假设某一文件需要拷贝100字节,每一个时间片可以完 ...

  7. C# 字符串 相关操作

    你或许知道你能使用String.Trim方法去除字符串的头和尾的空格,不幸运的是. 这个Trim方法不能去除字符串中间的C#空格. static void Main()         {       ...

  8. 小议常被忽略的a标签:visited属性的特殊用法

    CSS1/CSS2对于a定义了4个伪类, :link  a标签未访问时的样式 :active  a标签mousedown时的样式 :hover  a标签mouseover时的样式 :visited  ...

  9. [LeetCode] 268. Missing Number ☆(丢失的数字)

    转载:http://www.cnblogs.com/grandyang/p/4756677.html Given an array containing n distinct numbers take ...

  10. 进程退出exit、_exit、abort

    分为正常退出,异常退出 正常退出的方法: 1.在main函数中执行return 2.调用exit函数 3.调用_exit  函数 ----------------------------------- ...