简单属性查询(重要)
* 单一属性查询,返回结果集是属性列表,其元素类型和实体类中相应的属性类型一致
* 多个属性查询,返回的结果集是对象数组,数组的长度和查询的属性的个数一致
数组元素的类型和查询的属性类型一致
* 如果认为返回的数组不够对象化,可以采用hql动态生成实体对象
package com.wlh.hibernate;
import java.util.Iterator;
import java.util.List;
import junit.framework.TestCase;
import org.hibernate.Session;
public class SimplePropertyTest extends TestCase{
//单个属性查询
public void testQuery1(){
Session session = null;
try {
session = HibernateUtils.getSession();
session.beginTransaction();
//单个属性查询,返回结果集属性集合,其元素类型和实体类中相应属性的类型一致
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="+name);
}
session.getTransaction().commit();
}catch(Exception e) {
e.printStackTrace();
session.getTransaction().rollback();
}finally {
HibernateUtils.closeSession(session);
}
}
//多个属性查询
public void testQuery2(){
Session session = null;
try {
session = HibernateUtils.getSession();
session.beginTransaction();
//查询多个属性其集合元素是对象数组l列表。即,多个对象数组的集合
//数组元素中的类型与对应的实体类中的属性类型一致
//数组的长度取决于查询的属性个数
List students=session.createQuery("select id,name from Student ").list();
for(Iterator iter=students.iterator();iter.hasNext();){
Object[] o=(Object [])iter.next();
System.out.println("id="+o[0]+",name="+o[1]);
}
session.getTransaction().commit();
}catch(Exception e) {
e.printStackTrace();
session.getTransaction().rollback();
}finally {
HibernateUtils.closeSession(session);
}
}
//多个属性查询
public void testQuery3(){
Session session = null;
try {
session = HibernateUtils.getSession();
session.beginTransaction();
List students=session.createQuery("select new Student(id,name) from Student ").list();
for(Iterator iter=students.iterator();iter.hasNext();){
Student o=(Student)iter.next();
System.out.println("id="+o.getId()+",name="+o.getName());
}
session.getTransaction().commit();
}catch(Exception e) {
e.printStackTrace();
session.getTransaction().rollback();
}finally {
HibernateUtils.closeSession(session);
}
}
}
分享到:
相关推荐
**标题:“HQL (一) 简单属性查询”** **内容概述:** HQL(Hibernate Query Language)是Hibernate框架提供的一种面向对象的查询语言,它允许开发者以类和对象的方式而不是数据库表和列的方式来编写查询语句。这...
综上所述,Hibernate的HQL模糊查询是开发中不可或缺的工具,它提供了一种简单而强大的方式来处理数据库的模糊查询需求。通过理解并熟练掌握这些概念,可以更好地利用Hibernate进行数据操作,提升项目的开发效率和...
HQL语法丰富,涵盖了从简单到复杂的查询需求。以下是一些基础的HQL语法示例及其解析: 1. **基本查询** - `from Person as p`: 此语句用于从Person表中选择所有实例。这里的`as p`是可选的,用于指定结果集中的...
HQL(Hibernate Query Language)是一种面向对象的查询语言,它允许开发者使用类及其属性来编写查询语句,而不是传统的SQL语句。这使得开发人员能够更加专注于业务逻辑而不用深入到SQL层面。HQL支持各种复杂的查询,...
4. **灵活性**:HQL支持多种查询方式,包括简单查询、复杂查询、联接查询等。 ### HQL的基本使用 #### 1. 简单查询示例 ```java Session session = HibernateUtil.getSession(); String hql = "FROM Admin AS ...
HQL作为Hibernate的核心组成部分,不仅提供了与Criteria查询类似的面向对象封装,还具有更丰富的查询特性,使得复杂的查询操作变得简单易懂。 【HQL基本结构】 HQL查询语句主要包括以下几个部分: 1. `SELECT`:...
此子句支持简单的全表扫描,也能够进行更复杂的多表联接查询。 ### 2. select子句 `select`子句用于指定返回结果集的字段或属性。HQL支持多种选择方式,包括: - `select p.name from Person as p`:选择`Person`...
例如,假设我们有一个`Student`类,包含`name`和`age`属性,一个简单的HQL查询可能如下: ```sql SELECT s FROM Student s WHERE s.age > 18 ``` 这个查询会返回所有年龄大于18岁的学生对象。 **2. HQL的SELECT...
本文将对Hibernate HQL查询语法进行总结,涵盖基础查询、属性查询、实例化查询以及查询链接等多个方面。 1. 基础查询: 基础查询是最简单的HQL语句,用于获取所有`Student`对象。例如: ```java from Student ``` ...
这对于简单的条件查询非常有用。 **示例代码**: ```java List<User> userList = this.getHibernateTemplate().find("from bean.User u where u.name=?", "test"); ``` 或进行模糊查询: ```java List<User> user...
HQL 中的单表查询使用 FROM 语句,例如:FROM eg.Cat as cat,其中 cat 只是一个别名,为了用其他子语句的时候书写简单。 2.多表查询 HQL 中的多表查询使用 FROM 语句,例如:FROM eg.Cat as cat, eg.Dog as dog。...
- **Criterion**:表示一个具体的查询条件,可以是一个简单的比较,也可以是一个复杂的表达式。 - **Order**:用于指定结果集的排序方式。 - **Restrictions**:提供了丰富的预定义条件表达式,如等于、不等于、大于...
HQL查询通常是在Session对象上调用`createQuery()`或`createSQLQuery()`方法来执行的,返回的结果可以是对象列表、特定属性的集合或是单个对象。 #### HQL查询示例 在给定的部分内容中,我们看到了一个简单的...
总的来说,HQL更适合于编写结构化的、复杂的查询,而QBC则更适合于基于对象实例的简单查询。在实际开发中,开发者可以根据需求灵活选择适合的查询方式。在学习和实践中,理解并熟练掌握这两者,将极大地提升你的...
在实际应用中,HQL通常用于构造复杂的、面向对象的查询,而QBC则更适合于简单的查询或者基于对象实例的查询。开发者可以根据需求和场景选择合适的方法进行数据检索。 总结起来,HQL和QBC是Hibernate提供的两种不同...
1. HQL基础:HQL基于面向对象的概念,将表映射为类,列映射为属性,使得查询更符合Java开发者的思维模式。它支持连接(inner/outer/full joins)、投影、聚合、分组、排序、子查询以及SQL函数调用。 2. 简单HQL示例...
例如,一个简单的HQL查询可能如下: ```hql SELECT entity FROM EntityClass entity WHERE entity.property = 'value' ``` 这里`EntityClass`是持久化类的名称,`entity`是查询中的别名,`property`是类的属性。...
此时可以使用HQL的属性查询功能: ```java List<String> names = session.createQuery("select user.name from User user").list(); for (String name : names) { System.out.println(name); } ``` 如果需要同时...
### Hibernate HQL 查询详解 #### 一、HQL 概述 Hibernate 提供了一种非常强大的查询语言——HQL(Hibernate Query Language),它在...无论是简单的查询还是复杂的多表关联查询,HQL 都能提供简洁高效的解决方案。