sql、hql、jpql有啥不同

来源:百度知道 编辑:UC知道 时间:2024/09/23 03:28:13
请行家给解释一下谢谢

sql是关系数据库查询语言。
hql是hibernate造出来的对象sql语言,只有hibernate框架能够解析,并将其通过一系列的映射转换,拼凑成sql语言。
jpql是EJB3.0中的JPA造出来的对象查询语言。
这里要说一下,jpql其原型就是hibernate。sun看到hibernate做的orm技术做的非常好,成为行业内领导orm框架的主流产品,故sun将其吸收进EJB3中,制定了一套orm的java api标准(特别说明的是:hibernate框架制造者,也是ejb3 jpa规范的定制者)。
故jpql极其类似hql。

事实上sql和hql除了语法上相似外,差别很大,完全不是一个概念.
sql是关系数据库查询语言,面对的数据库;而hql是Hibernate这样的数据库持久化框架提供的内置查询语言,虽然他们的目的都是为了从数据库查询需要的数据,但sql操作的是数据库表和字段,而作为面向对象的hql操作的则是持久化类及其属性,这当中就有很大区别,所以不了解的话最好不要乱讲,误人子弟
jpql我第一次听说,不了解,是否与hql有相似之处?只是望文生义的猜测

SQL全称是“结构化查询语言(Structured Query Language)”

hql只了解一点~~

Java Presistence Query Language
基于首次在EJB2.0中引入的EJB查询语言(EJB QL),Java持久化查询语言(JPQL)是一种可移植的查询语言,旨在以面向对象表达式语言的表达式,将SQL语法和简单查询语义绑定在一起.使用这种语言编写的查询是可移植的,可以被编译成所有主流数据库服务器上的SQL.

上面两个有点相似,只是语法有点不同~~

上面两个与下面的区别就比较大~~
完全不同了~~结构不同~~

sql是结构化查询语言,用的时候是直接传的sql语句去在数据库中执行;
hql是hibernate query language,操作的是持久化对象,由底层的持久化对象的数据更新到数据库中区;