我正在自学休眠,并且很困惑为什么我不能只编写简单的 SQL 查询。
我发现它比普通 SQL(我习惯的)使用起来更混乱
另外:我发现 NetBeans HQL 编辑器非常烦人,对我来说,在 HQL 中生成正确的查询比较困难,然后在 SQL 中生成正确的查询,为什么显示的 SQL 与实际的 SQL 语句不同?
那么为什么要使用它呢? - 众所周知,hibernate 的资源消耗非常大,我相信 hibernate 是我们的应用程序经常耗尽内存的原因,例如在重新部署的过程中......
我很想知道为什么我应该使用 Hibernate 而不是普通的 SQL (mysql) 语句!?
也许休眠查询的一个很好的链接会很好;),我正在使用这个 atm:
- http://docs.jboss.org/hibernate/core/3.3/reference/en/html/queryhql.html http://docs.jboss.org/hibernate/core/3.3/reference/en/html/queryhql.html
但也对解释查询设置、映射、底层构造等的任何好的链接感兴趣。
此致
亚历克斯
HQL 是面向对象的,其目的是处理表示数据库表的 Java 对象。
一个基本的优点是你可以放置像这样的占位符:orderNumber
(使用冒号)在 HQL 查询中并替换为变量的值。例如:
int orderNumber = 685412;
List<Order> l=
session.createQuery("from Order where orderNumber = :orderNumber")
.setParameter("orderNumber",orderNumber).list();
这样就可以修改orderNumber
以简单的方式,避免经典
String query = "select * from Order where orderNumber = " + orderNumber + "...";
此外,如果您将数据库迁移到另一个 DBMS,使用 MySQL 语法有时会使您的代码不可重用。
无论如何,我仍然不太相信 HQL 的偏好。
Here http://download.oracle.com/javaee/5/tutorial/doc/bnbuf.html您可以找到完整的语法定义。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)