`
dev_liu
  • 浏览: 111643 次
  • 性别: Icon_minigender_1
  • 来自: 成都
最近访客 更多访客>>
社区版块
存档分类
最新评论

hibernate数据查询的几种方式

阅读更多

1.使用主键id加载对象(load(),get());

2.通过对象导航,比如通过stu.getTeam()得到team的实例;

3 使用hql;

4使用qbc(query by criteria)

5直接使用sql语句取得记录集;

一般都使用后面三种方式.

注意.hql是面向对象的查询.语法和sql是基本一样的.不区分大小写的,但是注意的是对与对象.必须遵循对象的大小写.因为hql是对像查询..同时我们必须清楚.hql只能取得对象,而不支持uid(update,insert.delete)

...........................................(具体的讲解详见查考书)

小结:

hql功能很强大,适合各种情况,但是动态条件查询构造起来很不方便.

criteria 最适合动态查询,但不太适合统计查询,qbe还不够强大.只适合简单的查询.

nativesql可以实现特定的数据库的sql.但是可移植性并不好.

针对web应用来说,大部分常规查询都是动态条件查询,所以首先criteria,并且h 3提供的detachedcriteria,可以在web层构造好detachedcriteria再进入session执行查询.但是涉及到统计查询和非常复杂的关联查询.criteria就无能为力了.这种情况下选择使用hql.最后如果涉及到使用某些数据库的特性的时候,就只有选择nativesql了.

hql常用来进行实体检索.这个时候要注意返回的list中的元素是实体还是实体数组.如果hql进行实体属性查询,当查询两个以上的属性时,list中的元素就是属性数组了.

qbc最大的用途在与动态查询.它不会忽略配置文件中的预先抓取策略.

使用本地sql检索必须检索对象的所有属性.

分享到:
评论
1 楼 cynan168 2009-08-07  

相关推荐

    Hibernate连表查询 Hibernate连表查询

    对于连表查询的结果处理,通常有两种常见的方式: #### 1. 获取单个字段值 如果只需要查询结果中的一个或几个字段,可以像下面这样处理: ```java for (int i = 0; i (); i++) { Object[] o = (Object[]) list....

    hibernate 执行原生sql的几种方式

    本篇文章将详细介绍在Hibernate中执行原生SQL的几种方式,以及它们各自的适用场景和优缺点。 1. **使用`Session.createSQLQuery()`** Hibernate的`Session`接口提供了`createSQLQuery()`方法,允许我们直接编写SQL...

    Hibernate之数据加载方式

    主要有以下几种方式: 1. **懒加载(Lazy Loading)**:默认情况下,Hibernate采用懒加载策略,即关联的对象不会在初始化时加载,而是在首次访问该关联对象时才加载。这种方式能有效减少内存消耗和提高性能。 2. *...

    HQL是hibernate自己的一套查询

    HQL是Hibernate框架中用于执行数据库操作的一种面向对象的查询语言。与传统的SQL语言不同,HQL更加注重于面向对象的特性,它支持Java类名和属性名作为查询条件,使得开发者可以直接使用Java对象模型来编写查询语句,...

    hibernate多表联合查询

    在Hibernate中,可以使用以下几种方式来实现多表联合查询: - **HQL (Hibernate Query Language)** - **Criteria API** - **Native SQL** 本文将重点介绍如何使用HQL和Native SQL来实现多表联合查询。 #### 三、...

    hibernate数据源

    在 Hibernate 中,数据源主要有以下几种实现: 1. **BasicDataSource**:这是最常用的 JDBC 数据源实现,来自 Apache Commons DBCP 库。它提供了一个池化的数据源,可以有效地管理和重用数据库连接,从而提高应用...

    Hibernate几种获数据方法比较

    本文将深入探讨Hibernate中的几种主要的数据获取方式,包括`Session.get()`与`Session.load()`、`Query.iterator()`与`Query.list()`以及使用HQL(Hibernate Query Language)进行查询。 ### 1. `Session.get()`与`...

    hibernateHQL关联查询

    Hibernate支持以下几种连接查询方式: 1. **内连接(Inner Join)**:`INNER JOIN` 或 `JOIN` ```java String hql = "SELECT s.stuName, e.examScore FROM Student s JOIN Exam e ON s.stuID = e.stuID"; ``` 2....

    struts+hibernate查询所有记录

    2. **HQL(Hibernate Query Language)**:这是Hibernate提供的一种查询语言,类似于SQL,但更加面向对象。通过HQL,我们可以方便地查询数据库中的记录。 3. **Struts标签库**:Struts提供了一系列自定义的JSP标签...

    Hibernate各种查询:联表查询 分页查询 位置参数查询(?) 占位符查询(冒号查询) 统计查询

    本篇文章将详细解析Hibernate中的几种主要查询方式,包括联表查询、分页查询、位置参数查询、占位符查询(冒号查询)以及统计查询,这些都是在实际开发中非常常见的需求。 首先,我们来看**联表查询**。在Hibernate...

    基于Hibernate的数据持久层关键技术的研究

    为了确保系统的可扩展性和可维护性,采用了以下几种设计模式和技术: 1. **DAO模式**:DAO(Data Access Object)模式是一种常用的设计模式,用于将数据访问逻辑封装在独立的对象中。这种模式有助于将业务逻辑与...

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

    在多表连接查询的场景下,Hibernate提供了几种不同的方法来处理数据关联,包括HQL(Hibernate Query Language)查询、Criteria API以及传统的JPA(Java Persistence API)注解。 1. **HQL查询**: Hibernate Query...

    Hibernate查询解决方案

    本文将详细介绍 Hibernate 提供的几种查询方式及其应用场景。 #### 二、重要知识点 ##### 1. Session 对象与查询操作 在 Hibernate 中,所有持久化操作都需要通过 Session 对象来完成,包括查询操作。Session ...

    hibernate查询语句--HQL

    例如,假设有一个基类`Animal`,并且有`Cat`、`Dog`等派生类继承自`Animal`,那么可以通过以下方式查询所有`Animal`类型的实例: ```hql from com.test.Animal as animal ``` 这将返回所有继承自`Animal`的实体。 ...

    hibernate查询缓存1

    当我们在Hibernate中进行查询时,主要有以下几种方式: 1. **主键查询**:通过`get()`或`load()`方法根据主键获取对象。`get()`方法会立即从数据库中获取数据,而`load()`方法则返回代理对象,直到实际访问属性时才...

    解决Hibernate对于Date类型的数据返回结果中时分秒不对的问题

    解决这个问题的方法有以下几种: - **明确日期时间格式**:在Hibernate的配置文件中,可以使用`<property name="hibernate.jdbc.time_zone">`来指定时区,或者在实体类中使用`@Type`注解自定义日期时间的转换器。 ...

    hibernate中的注释的几种配置方式

    在探讨Hibernate中注释的几种配置方式时,我们主要聚焦于如何通过注解来定义实体类与数据库表之间的映射关系,以及如何在Spring框架下整合Hibernate,利用注解进行SessionFactory的配置。以下是对给定内容中涉及的...

    hibernate对象三种状态

    这三种状态分别对应了对象与数据库的关联程度,理解它们对于高效地使用Hibernate进行数据操作至关重要。 ### 1. 持久态(Persistent) **持久态**是指对象已经被Hibernate管理,并且其状态与数据库中的记录同步。...

    优化Hibernate性能的几点建议

    当从数据库中查询大量数据时,使用`List`和`Iterator`两种不同的方式进行查询。使用`List`查询时,Hibernate会一次性将所有数据加载到内存中,这可能导致内存不足的问题。而使用`Iterator`进行查询时,每次只加载一...

    hibernate几种帮助文档

    标题"hibernate几种帮助文档"暗示了我们将要探讨的是关于Hibernate框架的不同类型的参考资料,包括可能的教程、API参考手册或使用指南。描述中提到的"Hibernate开发必用的包:annotation, Apachelog4j等, 包之间不...

Global site tag (gtag.js) - Google Analytics