在使用Hibernate查询时,我们通常有三种方式,通过三种方式皆可完成Hibernate的查询。下面我们来简单了解下在Hibernate中这三种查询的使用。
1. sql or hql语句查询:
这种是我们最常使用的方式,将sql查询写在代码中,这样做的好处是直观,当我们需要查询某个对象信息时,直接在dao层中书写对应的查询代码,符合我们的常用书写习惯。
String hql = "select case u.name when '' then '无名前辈' else u.name end from User u"; List query2 = session.createQuery(hql).list(); for(int i=0;i<query2.size();i++){ Object[] objs = (Object[]) query2.get(i); System.out.println(objs[0]); System.out.println(objs[0]); System.out.println(objs[0]); }
2. XML中写sql查询
我们可以在XX_hbm.xml的<sql-query>标签中添加查询语句,并把该查询加载到对应的<class>标签中,在<sql-query>标签中书写sql查询语句时,我们也可以定义返回参数类型,如下:
<return alias="user" class="User"></return>当我们添加这样的标签时,我们查询的结果就是List<User>类型的,当我们去除该标签时,我们的查询结果就是默认的List<Object[]>类型的。
<hibernate-mapping> <class name="User" table="User"> <id name="Id"/> <property name="name"/> <property name="password"/> <loader query-ref="getUsersByName"/> </class> <sql-query name="getUsersByName"> <!-- <return alias="user" class="User"></return> --> select u.id , u.name , u.password from User u where u.name like :namePattern </sql-query> </hibernate-mapping>
对于不同的结果返回类型,我们处理的方式也不一样,下面是List<Object[]>类型的处理方式。
List people = session.getNamedQuery("getUsersByName").setString("namePattern", "张三丰").setMaxResults(2).list(); for(int i=0;i<people.size();i++){ Object[] objs = (Object[]) people.get(i); System.out.println(objs[0]); }
相关推荐
Hibernate 查询语言 HQL Hibernate 查询语言 HQL 是一种面向对象的查询语言,用于检索对象。它提供了灵活多样的查询机制,包括导航对象图、通过标识符检索、使用 HQL 检索对象、使用 Hibernate 条件 API 和使用本地...
hibernate hql 语法学习的文档
本篇文档将深入探讨Hibernate中的HQL(Hibernate Query Language),一种面向对象的查询语言,它提供了与SQL类似的语法,但更贴近于面向对象的思维模式,使得开发者可以更加便捷地进行数据查询。 一、HQL简介 HQL是...
### Hibernate中HQL语句查询学习笔记 #### HQL基础 **HQL**(Hibernate Query Language)是Hibernate框架推荐使用的查询语言,它提供了一种面向对象的方式来查询数据库,支持多种复杂的查询操作,如继承、多态及...
**Hibernate HQL(Hibernate Query Language)** 是Hibernate提供的一个面向对象的查询语言,类似于SQL,但它是针对对象模型设计的。HQL允许开发者使用类和属性的名字而不是表和列名进行查询,从而降低了对底层...
通过学习这些文档,开发者可以掌握如何在Hibernate项目中高效地利用HQL进行数据查询,提升开发效率,同时保持代码的简洁和可维护性。理解并熟练运用HQL,是成为精通Hibernate的开发者不可或缺的一步。
Hibernate HQL,全称为Hibernate Query Language,是Hibernate框架中用于操作数据库的一种面向对象的查询语言。它允许开发者用面向对象的方式来编写查询语句,极大地提高了开发效率和代码的可读性。以下是对HQL的...
HQL Hibernate查询语言,HQL的学习和参考的文档,开发必备。
HQL,全称为Hibernate Query Language,是Hibernate框架提供的一种面向对象的查询语言。与SQL(Structured Query Language)不同,HQL是专为ORM(Object-Relational Mapping)设计的,它允许开发者以类和对象的方式...
这份文档分为多个章节,深入讲解了 Hibernate 的核心概念、配置、实体映射、查询语言、缓存策略以及与 Spring 框架的集成等关键内容。 一、Hibernate 核心概念 Hibernate 提供了一个数据持久化的框架,将 Java 对象...
5. **查询语言**:包括HQL(Hibernate Query Language)和 Criteria API,它们是用于查询数据库的对象化方式,比SQL更贴近面向对象编程。 6. **缓存机制**:介绍第一级缓存和第二级缓存的工作原理,以及如何配置和...
### Hibernate教程:数据查询与HQL详解 #### 引言 Hibernate是一款强大的对象关系映射(ORM)框架,它能够将Java对象与数据库表进行映射,极大地简化了数据库操作的复杂度。在数据查询方面,Hibernate提供了多种...
本集合包含了三个关键的学习文档,分别关注于Hibernate的操作基础、对象关系映射和高级查询技巧,是深入理解Hibernate不可或缺的资料。 一、《Hiberhate的增、删、改、查、动态、查询、分页.doc》 这份文档详细阐述...
在这个“Hibernate中文参考文档学习”中,我们可以深入理解Hibernate的核心概念、配置、实体映射、查询语言以及其他关键特性。 1. **核心概念** - **对象关系映射(ORM)**: ORM是将数据库中的数据模型转换为面向...
API文档通常包括实体管理、会话管理、查询语言(HQL)、 Criteria查询、缓存机制等内容。 2. **HIBERNATE - Relational Persistence for Idiomatic Java.pdf**: 这可能是一份详细的Hibernate技术白皮书或者教程,...
文档中提到的三条HQL语句没有给出具体内容,但通常会涉及如何通过级联查询获取员工及其所属部门的信息。分析这些语句的差异,可以进一步理解HQL如何处理关联对象的查询。 总结,掌握Hibernate HQL级联查询的关键...
4. **查询语言(HQL)**: Hibernate查询语言是一种面向对象的查询语言,类似于SQL,但更接近于Java语法。HQL允许开发者以类和对象的方式查询数据,而不是直接操作数据库表。 5. **Criteria API**: 除了HQL,...
9. **缓存机制**:Hibernate支持第二级缓存和查询缓存,可以显著提高性能。理解何时及如何使用缓存策略。 10. **事务管理**:学习如何在Hibernate中处理事务,包括自动提交、显式提交、回滚和隔离级别。 11. **...
《Hibernate学习文档》 Hibernate是一种广泛应用于Java开发中的对象关系映射(ORM)框架,它的核心价值在于简化了数据库操作,通过将Java对象模型与SQL关系模型进行映射,使得开发者可以使用面向对象的方式来处理...
Hibernate是一款开源的对象关系映射(Object/Relational Mapping,...整个文档是一个综合性的Hibernate使用指南,它从理论到实践都有所涵盖,对于任何想要深入学习和使用Hibernate框架的Java开发者来说都是宝贵的资源。