`
legend9999
  • 浏览: 32140 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Hibernate Native SQL查询常用的2种方法及对返回结果处理

阅读更多
1.直接返回List结果集,不包括列名信息

List ls = session.createSQLQuery(querySql).list();

如果当前查询SQL里包括多列,则List里每行存放的是Object数组,如果直接查询的是一列,则每行存放的则直接就是查询的哪一列的数据。
也可以在返回的结果数据里指定每一列的类型
List ls2 = session.createSQLQuery(querySql).addScalar("column_name", Hibernate.DATE).list();
这样返回的数据的时候Hiberante就会对返回的数据转换成你指定的数据类型.这个是在3.1版本就支持的操作。

2.返回包括列名信息,可以是数据每行转换成一个Map形式。则KEY对应列名,VALUE对应当前列的值
实现方法如下:

List ls3 = session.createSQLQuery(querySql).setResultTransformer(Criteria.ALIAS_TO_ENTITY_MAP).list();

这样返回的结果集每行就是Map(key:column,value:columnValue);还可以使用其他的一些Hibernate定义好的一些ResultTransformer方法的实现类。具体可以参考org.hibernate.criterion.CriteriaSpecification里定义的一些。
当然列可以实现自己的数据组装方法,只需要实现ResultTransformer接口就行了。
注意:ResultTransformer实现新版本的Hibernate才支持


以上例子说明的两种方法是没有Hibernate的mapping对象的概念。直接和JDBC返回的结果差不多。
如果想支持返回数据为Hibernate的Entity可以具体参考Hibernate参考文档里的 Native SQL查询一章的实现方法。
分享到:
评论

相关推荐

    Hibernate之原生Native SQL查询

    然而,尽管Hibernate提供了强大的HQL(Hibernate Query Language)和Criteria API,但在处理某些特定的、复杂的SQL查询时,可能无法满足需求,这时就需要用到“原生的Native SQL查询”。 Native SQL查询允许我们...

    hibernate将本地SQL查询结果封装成对象

    Hibernate的本地SQL查询功能为我们提供了一种灵活的方式来执行复杂的数据库操作,同时通过`addEntity()`、`addScalar()`和`Transformers.aliasToBean()`等方法,我们可以方便地将查询结果封装成Java对象,从而简化...

    hibernate3中通过nativesql或取部分字段并映射为具体对象的实现

    在Java的持久化框架Hibernate中,除了使用HQL(Hibernate Query Language)进行数据查询外,还可以使用Native SQL来访问数据库。本篇文章将深入探讨在Hibernate3中如何通过Native SQL查询部分字段,并将其映射到具体...

    hibernate 执行原生sql的几种方式

    在Java的持久化框架Hibernate中,执行原生SQL(Native SQL)是常见需求,尤其是在处理特定数据库特性或者优化性能时。本篇文章将详细介绍在Hibernate中执行原生SQL的几种方式,以及它们各自的适用场景和优缺点。 1....

    Native SQL查询 (使用SQLQuery).doc

    使用 SQLQuery 可以执行 Native SQL 查询,控制查询的执行是通过 SQLQuery 接口进行的,可以使用 addScalar() 方法指定返回值的类型,也可以使用 addEntity() 方法让原生查询返回实体对象,另外还可以使用 addJoin()...

    hibernate将本地SQL查询结果封装成对象(最终)

    使用本地sql语句查询后,无需再使用Object对查询结果进行强制转换,而是直接将查询结果放到实体Bean里了。 PS: 其实只有一版,这里只所以叫最终版是因为该附件我上传了好几天传不上去,到最后报告说‘资源已经存在...

    使用hibernate对sqlserver 2005进行增删改查

    在Java开发中,Hibernate是一个非常流行的ORM(对象关系映射)框架,它允许开发者通过面向对象的方式来操作数据库,而无需直接编写SQL语句。在这个场景中,我们将探讨如何使用Hibernate与SQL Server 2005数据库进行...

    hibernate多表联合查询

    有时候,我们可能需要执行一些更复杂的SQL查询,这时可以使用Hibernate的Native SQL查询功能。示例如下: ```java String sql = "SELECT b.name, COUNT(a.fee), MIN(a.chargeBeginTime), MAX(a.chargeEndTime) " + ...

    Native-SQL查询 (1).ppt

    总结来说,Native SQL查询在Hibernate中提供了对数据库的直接访问,允许开发者利用SQL的强大功能,同时保持了与ORM框架的兼容性。虽然HQL通常更为简便且易读,但在处理复杂查询或充分利用数据库特性时,Native SQL是...

    hibernate映射主键生成策略native

    本文将重点介绍在Oracle数据库环境下,使用Hibernate的“native”策略来生成主键的具体方法及注意事项。 #### 二、主键生成策略概述 在Hibernate中,主键生成策略主要包括以下几种: - **identity**:由数据库...

    sqlserver的hibernate

    它提供了高效、稳定的数据存储和管理能力,支持复杂的SQL查询和事务处理。 ### Hibernate与SQLServer的集成 要将Hibernate与SQLServer结合,首先需要在项目的`pom.xml`或`build.gradle`文件中添加SQLServer驱动的...

    hibernate查询方法

    Hibernate,作为Java领域中最流行的持久化框架之一,提供了多种查询数据的方法。这些方法使得开发者能够高效地从数据库中检索、更新和删除数据,无需编写大量SQL语句。本篇文章将深入探讨Hibernate中的查询技术,...

    hibernate sql案例

    2. 关联映射:如一对一(OneToOne)、一对多(OneToMany)、多对一(ManyToOne)和多对多(ManyToMany)关系的映射及查询。 3. 查询优化:包括缓存机制(一级缓存和二级缓存)、批处理操作以及延迟加载(Lazy ...

    hibernate源码分析过程

    Hibernate 支持 native SQL 操作,可以使用原生 SQL 语句来查询对象。 性能 Hibernate 的性能可以通过一级缓存和二级缓存来提高。一级缓存可以缓存对象的状态,二级缓存可以缓存查询结果。 Hibernate 也支持第三方...

    HQL是hibernate自己的一套查询

    在上述代码中,我们同样使用`getSession`方法获取`Session`实例,然后通过`createCriteria`方法创建`Criteria`对象,并添加相应的查询条件,最后执行查询并返回结果。 #### 3. DetachedCriteria DetachedCriteria...

    hibernate必须包/教程/查询

    2. `hibernate查询.txt`:可能是对Hibernate查询语法和用法的文本说明,包括HQL、Criteria API和Native SQL的示例。 3. `hibernate必须包.zip`:这个文件可能包含了开发Hibernate项目所需的JAR包,包括Hibernate...

    Hibernate_NSQL&HQL增删改操作

    在Hibernate框架中,进行数据库操作时,开发者可以选择使用两种不同的查询语言:NSQL(Native SQL)和HQL(Hibernate Query Language)。这两种查询方式各有优势,在不同的场景下使用可以达到最佳的效果。 ##### 一...

    hibernate查询代码

    4. **Native SQL**: 直接使用SQL查询,适用于HQL或Criteria无法满足需求的情况。例如: ```java Session session = sessionFactory.openSession(); SQLQuery query = session.createSQLQuery("SELECT * FROM ...

Global site tag (gtag.js) - Google Analytics