HQL与SQL / Hibernate netbeans HQL编辑器

时间:2010-11-12 08:36:40

标签: sql hibernate web-applications netbeans hql

我正在教我的自我休眠,并且很困惑为什么我不能只编写简单的SQL查询。

我发现使用它比使用普通SQL(我习惯使用的)

更令人困惑

PLUS:我发现NetBeans HQL编辑器非常烦人,我很难在HQL中生成正确的查询,然后在SQL中,为什么显示的SQL与实际的SQL语句不同?

为什么要使用它? - 众所周知,hibernate资源非常广泛,我相信hibernate是我们的应用程序经常耗尽内存的原因,就像在重新部署过程中一样......

我很想知道为什么我应该使用Hibernate而不是简单的SQL(mysql)语句!?

也许hibernate查询的好链接会很好;),我正在使用这个atm:

但也对任何解释查询设置,映射,底层构造等的好链接感兴趣。

最诚挚的问候 亚历

1 个答案:

答案 0 :(得分:3)

HQL是面向对象的,它的目的是处理表示数据库表的Java对象。 一个基本的优点是您可以在HQL查询中放置:orderNumber(使用冒号simbol)等占位符,并替换为变量的值。例如:

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语法的Morover有时会使您的代码无法重复使用。 无论如何,我仍然不太相信HQL的偏好。

Here你可以找到完整的语法定义。