>>分享JPA、Hibernate、Mybatis对象持久化技术,对《精通JPA与Hibernate:Java对象持久化详解》提供技术支持 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 23646 个阅读者 刷新本主题
 * 贴子主题:  JPQL与SQL的区别 回复文章 点赞(0)  收藏  
作者:sunshine    发表时间:2020-02-17 19:36:19     消息  查看  搜索  好友  邮件  复制  引用

前言

在JAVA EE中,JPQL是专门为Java 应用程序访问和导航实体实例设计的。Java Presistence Query Language(JPQL),java持久性查询语言。它是JPA规范的重要组成部分,其实它就是一种查询语言,语法类似于SQL语法,但是有着本质的区别,下面来一起学习下吧。

JPQL与SQL的区别

JPQL是面向对象的查询语言,因此它可以完全理解继承、多态和关联等特征。而且JPQL内置了大量函数,极大地方便了JPQL查询的功能。当然JPQL底层依然是基于SQL的,但JPQL到SQL的转换无须开发者关心,JPQL解析器会负责完成这种转换,并负责执行这种转换的SQL语句来更新数据库。

SQL是面向关系数据库的查询语言,因此SQL操作的对象是数据表、数据列;而JQPL操作的对象是实体对象,对象属性。

代码对比

SQL:

//原生的SQL语句
select name,age,user_id from t_user

JPQL:

//面向对象的JPQL语句
select name,age,userId from User

分析:
第一条语句用于对t_user table表执行查询,查询name、age、user_id三个数据列;
第二条语句用于对User实体执行查询,查询的是User实体的name、age、userId 属性。

JPQL基本语法

select 实体别名.属性名,实体别名.属性名……
from 实体名 实体别名
where 实体别名.实体属性 op 比较值

代码范例

//根据bookId查询图书信息
SELECT c FROM TBook c WHERE c.id=:bookId and c.isDelete=0
//更新bookId更新图书信息
UPDATE TBook b SET b.isDelete=1 WHERE  b.id=:bookId

总结

JPQL是一种面向对象的查询语言,和hibernate HQL很相似。


---------------------
原文:https://blog.csdn.net/zt15732625878/article/details/78378995


程序猿的技术大观园:www.javathinker.net



[这个贴子最后由 flybird 在 2020-02-23 11:15:07 重新编辑]
  Java面向对象编程-->Swing组件(下)
  JavaWeb开发-->Web运作原理(Ⅱ)
  JSP与Hibernate开发-->持久化层的映射类型
  Java网络编程-->用Axis发布Web服务
  精通Spring-->创建综合购物网站应用
  Vue3开发-->Vue简介
  什么是XA事务
  孙卫琴的《精通JPA与Hibernate》的读书笔记:持久化层对象的...
  Spring JPA 使用注解方式进行事务管理
  好消息:孙卫琴老师制作的最新JPA与Hibernate视频教程出炉了
  EntityTransaction 与UserTransaction的区别
  EntityManager接口的find()方法和getReference()方法的区别
  好书推荐:《精通Hibernate:Java对象持久化技术详解》
  JPA EntityManager类的常用方法的作用
  JPA/Hibernate:基于版本的乐观锁并发控制
  Hibernate的八种对象标识符生成策略
  JPA API入门
  Hibernate Session和JPA的EntityManager的对应关系
  Hibernate5源码解析:SessionFactroy的创建过程
  Hibernate解压包的目录结构
  在看孙老师的hibernate书。。。
  更多...
 IPIP: 已设置保密
树形列表:   
1页 0条记录 当前第1
发表一个新主题 开启一个新投票 回复文章


中文版权所有: JavaThinker技术网站 Copyright 2016-2026 沪ICP备16029593号-2
荟萃Java程序员智慧的结晶,分享交流Java前沿技术。  联系我们
如有技术文章涉及侵权,请与本站管理员联系。