`

hibernate的几种检索方式

阅读更多
转自http://www.iteye.com/topic/14503

在hibernate开发过程中,查询是最多用到的。我们肯定会问自己一个问题:
Hibernate的检索方式有很多,load/get检索,HQL(find,Query)检索,QBC(Criteria,QBE)检索以及本地数据库SQL检索.
那么,在实际应用中到底选择哪一种检索好?它们之间的检索有哪些联系和区别呢?

答:
哪一种检索并无根本的优劣,而是要看不同的情况,结合各种查询的优点和缺点,考虑采用哪种检索会更加简单和合适一点。

HQL功能最强大,适合各种情况,但是动态条件查询构造起来很不方便
Criteria最适合动态条件查询,不太适合统计查询,QBE还不够强大,只适合相当简单的查询
NativeSQL可以实现特定数据库的SQL,但是可移植性就牺牲了

Hibernate2的Criteria功能不够完善,所以Hibernate2上面可用的只有HQL和NativeSQL,Hibernate3的Criteria已经非常强大了。

针对web应用来说,大部分常规查询都是动态条件查询,所以首选使用Criteria,并且Hibernate3提供了DetachedCriteria,可以在web层构造好DetachedCriteria再进入session执行查询,非常方便实用的特性。

但是涉及到统计查询和非常复杂的关联查询,Criteria就无能为力了,这种情况下我选择使用HQL。

最后如果必须使用某些数据库的特性,例如Oracle的"...connect with ... by"这样的SQL,则选择使用NativeSQL。
分享到:
评论

相关推荐

    day36 04-Hibernate检索方式:多表连接查询

    标题中的“day36 04-Hibernate检索方式:多表连接查询”表明这是一个关于Hibernate框架的教程,重点讲解如何在Hibernate中进行多表连接查询。在这个主题中,我们将深入探讨Hibernate的ORM(对象关系映射)机制以及...

    JSP开发中hibernate框架的常用检索方式总结

    1、hibernate框架的检索方式有以下几种: OID检索:根据唯一标识OID检索数据 对象导航检索:根据某个对象导航查询与该对象关联的对象数据 HQL检索:通过query接口对象查询 QBC检索:通过criteria接口对象查询 ...

    Hibernate知识点总结

    **HQL(Hibernate Query Language)**是一种面向对象的查询语言,类似于SQL,但其语法更接近面向对象的思维方式。HQL支持面向对象的查询方式,例如查询特定属性、执行聚合操作等。通过HQL,开发者可以更自然地表达...

    .hibernate 框架介绍

    - 掌握Hibernate的检索方式,包括查询操作。 - 学习如何优化Hibernate,提高框架的效率。 快速入门Hibernate框架,需要进行以下几个步骤: - 下载Hibernate框架,并了解其目录结构,熟悉Documentation目录、Lib目录...

    Hibernate电子书(全)

    `Query`接口允许使用HQL(Hibernate Query Language)或SQL进行查询,而`Criteria`API则提供了一种基于标准的查询方式,无需了解具体的SQL语法。对于数据的更新和删除,Hibernate同样提供了简单的方法,只需调用对应...

    hibernate search

    Hibernate Search 是一款强大的搜索工具,它为基于 Hibernate 的应用程序提供了一种将实体类与 Lucene 索引映射的方法,使得开发人员能够轻松地在应用程序中实现全文搜索功能。本文主要介绍如何搭建 Hibernate ...

    hibernateDemo

    4. **持久化(Persistence)**:Hibernate提供了几种方式来实现对象的持久化,如`Session`接口提供的`save()`, `persist()`, `update()`和`merge()`方法。 5. **查询语言(HQL)**:Hibernate有自己的查询语言,即...

    Hibernate\hibernate3.2官方中文参考手册PDF

    3. **Query和Criteria查询**:Hibernate提供了HQL(Hibernate Query Language)和Criteria API两种查询方式。HQL是面向对象的查询语言,类似于SQL,但更贴近于Java对象。Criteria API则提供了一种编程式的查询方式,...

    hibernate全 jar包

    5. **事务管理(Transaction)**: Hibernate支持JTA和JDBC两种事务管理方式,确保数据的一致性和完整性。 6. **二级缓存**: 可以配置使用第三方缓存提供商,如 EhCache,提高数据读取效率。 7. **HQL(Hibernate ...

    Spring与Hibernate集成

    3. **配置HibernateTemplate**: Spring通过`HibernateTemplate`提供了一种简化数据访问的方法。它封装了常见的Hibernate操作,如保存、更新、删除和查询。在Spring配置文件中,我们可以定义一个`HibernateTemplate`...

    hibernate教程

    3. **检索策略和方式**:Hibernate支持多种检索策略,如立即加载(eager)、延迟加载(lazy)等,以及HQL(Hibernate Query Language)、原生SQL等多种查询方式。 4. **数据库事务、并发、缓存与性能优化**:事务...

    hibernate源码

    Hibernate定义了实体的几种状态:瞬时态、持久态、游离态和删除态。通过不同的状态转换,Hibernate实现了对象的生命周期管理,如持久化对象的持久化、检索、更新和删除。 九、实体关系映射 Hibernate支持多种关系...

    hibernate项目源代码

    在Hibernate项目中,通常会涉及以下几个核心知识点: 1. **配置文件**:`hibernate.cfg.xml`是Hibernate的主配置文件,其中包含了数据库连接信息、JDBC驱动、事务管理器设置等。学习者应了解如何配置这些参数以确保...

    hibernate2.1

    在 Hibernate 2.1 中,有几个核心概念和技术值得深入探讨: 1. **对象关系映射(ORM)**:Hibernate作为ORM工具,它的主要任务是将Java对象与数据库中的记录进行映射,使得开发者可以使用面向对象的方式来处理数据...

    hibernate3.3.2

    1. **对象关系映射(ORM)**:Hibernate 提供了一种在Java应用程序中处理关系数据库的抽象方式,通过映射Java类到数据库表,对象的属性到表的列,使得开发者可以像操作对象一样操作数据库。 2. **配置文件...

    hibernate5.0jar包

    5. **Criteria API**:除了HQL,Hibernate还提供了Criteria API,一种动态构建查询的方式。它允许开发者在运行时构建查询,具有更好的可读性和灵活性。 6. **第二级缓存**:Hibernate支持二级缓存,这可以显著提升...

    hibernate4 全部jar包

    在Hibernate 4中,主要涉及以下几个核心知识点: 1. **对象关系映射(ORM)**:Hibernate允许开发者用面向对象的方式来操作数据库,将Java对象与数据库表进行映射,消除了SQL语言和Java代码之间的直接耦合。 2. **...

Global site tag (gtag.js) - Google Analytics