//创建Query对象
Query query=session.createQuery("select Student.sname,Student.sdept from Student");
List list=query.list(); //执行查询
//以下代码显示查询的信息
Iterator it=list.iterator();
while(it.hasNext()){
Object[] stu=(Object[])it.next();
System.out.println("id"+stu[0]);
System.out.println("name"+stu[1]);
System.out.println("\n");
}
单一属性查询
//返回结果集属性列表,元素类型和实体类中相应的属性类型一致
List students = session.createQuery("select name from Student").list();
for (Iterator iter=students.iterator(); iter.hasNext();) {
String name = (String)iter.next();
System.out.println(name);
}
多个属性查询
//查询多个属性,其集合元素是对象数组
//数组元素的类型和对应的属性在实体类中的类型一致
//数组的长度取决与select中属性的个数
List students = session.createQuery("select id, name from Student").list();
for (Iterator iter=students.iterator(); iter.hasNext();) {
Object[] obj = (Object[])iter.next();
System.out.println(obj[0] + "," + obj[1]);
}
返回Student实体对象
//可以采用hql动态实例化Student对象
//此时list中为Student对象集合
List students = session.createQuery("select new Student(id, name) from Student").list();
for (Iterator iter=students.iterator(); iter.hasNext();) {
Student student = (Student)iter.next();
System.out.println(student.getId() + "," + student.getName());
}
注意:使用这种方式,Class Student中要有一个此处参数对应的构造函数。即要有Student(id, name)构造函数。
使用别名(as 可有可无)
List students = session.createQuery("select s.id, s.name from Student as s").list();
for (Iterator iter=students.iterator(); iter.hasNext();) {
Object[] obj = (Object[])iter.next();
System.out.println(obj[0] + "," + obj[1]);
}
List students = session.createQuery("from Student").list();
List students = session.createQuery("from Student s").list();
List students = session.createQuery("from Student as s").list();
List students = session.createQuery("select s from Student as s").list();
List students = session.createQuery("select * from Student").list();
更新中
分享到:
相关推荐
在SQL中,处理这些关系通常需要复杂的联接操作,而在HQL中则相对简单。此外,HQL支持动态查询,可以方便地处理集合类型的参数。 四、HQL的高级特性 1. 关联查询:HQL允许直接在查询中包含关联对象,如“SELECT u ...
HQL语法丰富,涵盖了从简单到复杂的查询需求。以下是一些基础的HQL语法示例及其解析: 1. **基本查询** - `from Person as p`: 此语句用于从Person表中选择所有实例。这里的`as p`是可选的,用于指定结果集中的...
**标题:“HQL (一) 简单属性查询”** **内容概述:** HQL(Hibernate Query Language)是Hibernate框架提供的一种面向对象的查询语言,它允许开发者以类和对象的方式而不是数据库表和列的方式来编写查询语句。这...
HQL 中的单表查询使用 FROM 语句,例如:FROM eg.Cat as cat,其中 cat 只是一个别名,为了用其他子语句的时候书写简单。 2.多表查询 HQL 中的多表查询使用 FROM 语句,例如:FROM eg.Cat as cat, eg.Dog as dog。...
HQL(Hibernate Query Language)是一种面向对象的查询语言,它允许开发者使用类及其属性来编写查询语句,而不是传统的SQL语句。这使得开发人员能够更加专注于业务逻辑而不用深入到SQL层面。HQL支持各种复杂的查询,...
这对于简单的条件查询非常有用。 **示例代码**: ```java List<User> userList = this.getHibernateTemplate().find("from bean.User u where u.name=?", "test"); ``` 或进行模糊查询: ```java List<User> user...
例如,假设我们有一个`Student`类,包含`name`和`age`属性,一个简单的HQL查询可能如下: ```sql SELECT s FROM Student s WHERE s.age > 18 ``` 这个查询会返回所有年龄大于18岁的学生对象。 **2. HQL的SELECT...
1. HQL基础:HQL基于面向对象的概念,将表映射为类,列映射为属性,使得查询更符合Java开发者的思维模式。它支持连接(inner/outer/full joins)、投影、聚合、分组、排序、子查询以及SQL函数调用。 2. 简单HQL示例...
本文将对Hibernate HQL查询语法进行总结,涵盖基础查询、属性查询、实例化查询以及查询链接等多个方面。 1. 基础查询: 基础查询是最简单的HQL语句,用于获取所有`Student`对象。例如: ```java from Student ``` ...
4. **灵活性**:HQL支持多种查询方式,包括简单查询、复杂查询、联接查询等。 ### HQL的基本使用 #### 1. 简单查询示例 ```java Session session = HibernateUtil.getSession(); String hql = "FROM Admin AS ...
接下来,我们转向 HQL(Hibernate Query Language),这是 Hibernate 提供的面向对象的查询语言,类似于 SQL,但更加面向对象,可以直接操作 Java 对象和属性。HQL 查询的语法结构包括:SELECT、FROM、WHERE、GROUP ...
例如,一个简单的HQL查询可能如下: ```hql SELECT entity FROM EntityClass entity WHERE entity.property = 'value' ``` 这里`EntityClass`是持久化类的名称,`entity`是查询中的别名,`property`是类的属性。...
综上所述,Hibernate的HQL模糊查询是开发中不可或缺的工具,它提供了一种简单而强大的方式来处理数据库的模糊查询需求。通过理解并熟练掌握这些概念,可以更好地利用Hibernate进行数据操作,提升项目的开发效率和...
### Hibernate HQL 查询详解 #### 一、HQL 概述 Hibernate 提供了一种非常强大的查询语言——HQL(Hibernate Query Language),它在...无论是简单的查询还是复杂的多表关联查询,HQL 都能提供简洁高效的解决方案。
HQL查询通常是在Session对象上调用`createQuery()`或`createSQLQuery()`方法来执行的,返回的结果可以是对象列表、特定属性的集合或是单个对象。 #### HQL查询示例 在给定的部分内容中,我们看到了一个简单的...
例如,以下是一个简单的HQL查询示例,用于获取所有年龄大于30岁的用户: ```java String hql = "FROM User WHERE age > 30"; Query query = session.createQuery(hql); List<User> users = query.list(); ``` 在线...
在探讨NHibernate HQL条件查询时,我们首先要理解NHibernate框架以及HQL(Hibernate Query Language)的基本概念。NHibernate是一个开放源代码的对象关系映射(ORM)解决方案,它为.NET平台提供了一种将对象模型与...
- **简单查询**: `FROM`关键字用于选择查询的类,如`FROM Employee`。 - **条件查询**: 可以添加`WHERE`子句来过滤结果,如`FROM Employee WHERE name = 'John Doe'`。 - **排序**: 使用`ORDER BY`子句进行结果...
此子句支持简单的全表扫描,也能够进行更复杂的多表联接查询。 ### 2. select子句 `select`子句用于指定返回结果集的字段或属性。HQL支持多种选择方式,包括: - `select p.name from Person as p`:选择`Person`...