hql与sql

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhangjiahao7521/article/details/79954806

HQL是Hibernate Query Language的缩写,提供更加丰富灵活、更为强大的查询能力;HQL更接近SQL语句查询语法。
一、hql与sql的区别:
 1、首先 hql 是面向对象查询,sql 是面向数据库表查询。
 2、hql 区分大小写,sql 不区分大小写。
 3、在语法上
  hql :from 后面跟的 类名+类对象, where 后用对象的属性做条件。
   增删改直接调用封装好的save()、delete()、update()方法。
  sql: from 后面跟的是表名,where 后 用表中字段做条件查询。
 4、hql中 select * 可以省略。

二、在Hibernate中推荐使用hql语句,不建议直接使用sql。
原因:
 1、sql不是以面对对象的方式操作数据库,这是Hibernate不提倡的。
 2、如果编写了某种数据库特有的函数或语法,那么在更换数据库时肯定要修改源码重新编译。

三、Hibernate把hql编译成sql语句传送到数据库进行查询。
 在执行效率方面,不考虑其它的影响, 一般sql 效率要高于 hql ,如果考虑 缓存,关联映射,语句的质量就要看具体情况,不过sql 的功能是比hql大。

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页