JPQL详解

article/2025/10/13 20:48:51

前提

最近在改bug的时候发现了自己的缺点,在改前端bug的时候非常顺利顺手。但是在改后端bug的时候如果遇到不是太难的问题还可以解决,但是一到难点感觉自己就懵逼! 所以讲解了关于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 比较值

具体事例

select p.name from book as p 

在写语句的时候我们可能需要使用到参数,如果是位置参数使用“?” ,如果是参数则使用 “:XX “


JPQL 查询基本格式

jpql的查询语句设计非常简单。主要是由于Query接口来完成的,而我们的Query接口是由EntityManager创建出来的。ps上面提过什么是EntityManage。

  1. Query createNamedQuery(String name):创建查询的名称来创建一个命名查询,使用sql和jpql都可以
  2. Query createNativeQuery(String SQLString)根据的原生的sql语句查询
  3. QuerycreateQuery(String jpqlString)根据指定的JPQL语句创建一个查询

jpql传参数我们使用的Query setParmeter(String name, Object value),还有其他是日期类型的,大家可以在查阅


JPQL 执行基本格式

当我们的参数和语句完事之后我们就应该执行,对于jpql执行分为以下几种

  1. List getResultList()执行JPQL的select语句,并且返回的是list集合
  2. Object getSingleResult()执行返回的那个结果的select语句
  3. int executeupdate()表示执行批量的删除和更新
  4. Query setFirstResult(int startPosition)设置查询结果从第几条记录开始
  5. Query setMaxResults(int maxResult)表示设置查询最多返回几条语句

总结

大概内容就是这样了,后面还需要不断的去理解。我们一起加油啊!


http://chatgpt.dhexx.cn/article/k6FJSXpr.shtml

相关文章

JPA(4) JPQL一些简单的查询语法

JPQL --> JPA Query Language --> JPA的查询语句 (另外HQL:Hibernate的查询语句) JPQL本质:JPA通过antlr-2.7.7.jar将JPQL编译成sql并且封装执行的。 JPQL和SQL区别?? --> 它们查询的关键字都是一样的&#xff…

HPROF内存文件获取

1.命令生成Dump内存文件 命令&#xff1a;am dumpheap 进程名 输出文件目录<文件名.hprof> 如&#xff1a; am dumpheap app …/demo.hprof 2.通过Android Studio获取 在Android Studio中使用Android Monitor里的Memory Monitor工具监视内存使用情况时&#xff0c;可以…

jvm调优-hprof 文件打开

当服务器出现内存溢出的情况&#xff0c;要下载分析dump内存文件“ dump 当前进程的内存信息: 通过命令 jsp获取java进程pid: jsp: 生成dump文件&#xff1a; jmap -dump:formatb,filedump.hprof pid在当前目录xiazaihprof文件到本地。 如何打开hprof后缀格式的文件呢&#…

使用adb命令导出hprof文件

我们可以使用android studio profiler导入hprof文件分析android应用的内存问题。那么如何从手机上面导出这份文件呢&#xff1f; 把应用的heap 区的数据取出来保存在一个hprof文件上&#xff0c;然后把hprof文件导入到可以查看这个文件的工具上&#xff08;如android studio p…

jvisualvm分析hprof文件

jvisualvm是jdk8的bin目录下自带的一个分析工具&#xff0c;在我下载的jdk11下没有这个工具&#xff0c;这个工具我们可以用来分析hprof文件 首先我们可以配置对应的参数&#xff0c;配置文件地址在\jdk8\lib\visualvm\etc\visualvm.conf visualvm_default_options"-J-cl…

android studio 分析 hprof,Android Studio 中的 HProf静态分析

HProf 在 Android Studio 中的展示详解&#xff0c;基于我对其的理解&#xff0c;我将其根据 heap,count,size,其他将其分成了 4 个层次。 第一层 Heap 分类 Heap 共分为&#xff1a; zygote heap: 与 android zygote 进程共享的 heap image heap: 与系统共享的 heap app heap&…

JProfile 分析OOM hprof文件

JProfile 分析OOM OutOfMemoryError 1.JVM组成 首先要明白JVM组成 方法区-非堆 Method Area、No-HeapJava栈-虚拟机栈 VM Stack、Java Stack本地方法栈 Native Method Stack程序计数器 Program Counter Register堆 Heap 1.1 OOM发生在哪里? OOM可以发生在除了程序计数器外…

java如何打开hprof_hprof是什么文件?如何打开hprof?

hprof是什么文件&#xff1f;如何打开hprof&#xff1f; 发布时间&#xff1a;2020-03-26 17:35:24 来源&#xff1a;亿速云 阅读&#xff1a;1195 作者&#xff1a;小新 hprof是什么文件&#xff1f;如何打开hprof&#xff1f;很多人都不太了解&#xff0c;今天小编为了让大家…

linux命令生成hprof文件,Android平台生成任意进程的hprof文件

一、知识介绍 1.1 为什么要抓取hprof hprof文件中记录了当前进程内存的使用情况,对于一些难以解决的OOM问题,提取出对应进程的hprof文件可以很好的分析这种问题。 分析hprof的工具 Java Heap Analyzes Tool Eclipse Memory Analyzer 1.2 生成hprof指令 adb shell am dumpheap…

java hprof文件_JVM性能调优监控工具hprof使用详解

一、问题现状 现实企业级Java开发中,有时候我们会碰到下面这些问题: OutOfMemoryError,内存不足 内存泄露 线程死锁 锁争用(Lock Contention) Java进程消耗CPU过高 …… 这些问题在日常开发中可能被很多人忽视(比如有的人遇到上面的问题只是重启服务器或者调大内存,而不会深…

java hprof文件_hprof是什么文件

hprof是什么文件&#xff1f; 是java进程的内存镜像文件&#xff0c;里面包含了内存堆详细的使用信息。 最近学习深入java虚拟机的书&#xff0c;照着里面的例子跑了下。 如何打开hprof&#xff1f; 下面是demo&#xff1a;/** * VM Args&#xff1a;-Xms20m -Xmx20m -XX:HeapD…

Hprof

转载地址&#xff1a;http://geek.csdn.net/news/detail/90509 一、开发者的自测利器-Hprof命令 1. 示例演示 例子程序&#xff1a; /*** PROJECT_NAME: test* DATE: 16/7/22* CREATE BY: chao.cheng**/ public class HProfTest {public void slowMethod() {try {T…

android hprof,Android Hprof 分析

Android Studio 中的 HProf静态分析 HProf 在 Android Studio 中的展示详解&#xff0c;基于我对其的理解&#xff0c;我将其根据 heap,count,size,其他将其分成了 4 个层次。 第一层 Heap分类 Heap 共分为&#xff1a; zygote heap: 与 android zygote 进程共享的 heap image …

android中hprof文件分析

Hprof基本概念 hprof最初是由J2SE支持的一种二进制堆转储格式&#xff0c;hprof文件保存了当前java堆上所有的内存使用信息&#xff0c;能够完整的反映虚拟机当前的内存状态。 格式 Hprof文件由FixedHead和一系列的Record组成&#xff0c;Record包含字符串信息、类信息、栈信…

hprof 文件查看

https://www.jianshu.com/p/4e6e88f1d211 hprof 文件是 Java 的 内存快照文件&#xff08;Heap Profile 的缩写&#xff09;&#xff0c;格式为 java_pid*.hprof 用于分析 OOM: OutOfMemoryError(堆)内存不足错误 是 JVM 设置 -XX:HeapDumpOnOutOfMemoryError 参数时打印的内容…

Java 内存溢出(二)使用 MAT 分析 .hprof 内存映像文件

目录 一、内存溢出时自动导出 .hprof 文件二、下载安装 MAT三、启动 MAT四、MAT 分析 hprof 文件1.Overview 概览2.Leak Suspects 溢出原因猜测3.Histogram 对象实例数量排序4.Dominator Tree 支配树 .hprof 文件&#xff1a; 是 java 项目的 Heap Dump 文件&#xff0c;也叫内…

Solr文档学习--Solrj的使用

首先启动solr solr.cmd startSolrClient 主要通过SolrClient来连接到Solr服务器 SolrClient有4个实现类 CloudSolrClient SolrJ client class to communicate with SolrCloud. Instances of this class communicate with Zookeeper to discover Solr endpoints for SolrClou…

solrj 对solr 的操作

使用SolrJ操作Solr会比利用httpClient来操作Solr要简单。SolrJ是封装了httpClient方法&#xff0c;来操作solr的API的。SolrJ底层还是通过使用httpClient中的方法来完成Solr的操作。 1、 首先&#xff0c;你需要添加如下jar包 其中apache-solr-solrj-3.4.0.jar、slf4j-api-1.6…

SolrJ的使用

CommonsHttpSolrServer CommonsHttpSolrServer 使用HTTPClient 和solr服务器进行通信。 Java代码 String url "http://localhost:8983/solr"; SolrServer server new CommonsHttpSolrServer( url ); String url "http://localhost:8983/solr";Sol…

sorl

solr&#xff1a; 层面搜索、命中醒目显示并且支持多种输出格式&#xff08;包括 XML/XSLT 和 JSON 格式&#xff09;&#xff0c;Solr 可以阅读和使用构建到其他 Lucene 应用程序中的索引。 安装&#xff1a;http://blog.csdn.net/millery22/article/details/51446014 对外提…