`
忧里修斯
  • 浏览: 426475 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

HQL 简单属性查询

阅读更多
简单属性查询(重要)
* 单一属性查询,返回结果集是属性列表,其元素类型和实体类中相应的属性类型一致
* 多个属性查询,返回的结果集是对象数组,数组的长度和查询的属性的个数一致
  数组元素的类型和查询的属性类型一致
* 如果认为返回的数组不够对象化,可以采用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 (一) 简单属性查询

    NULL 博文链接:https://wlh269.iteye.com/blog/321736

    Hibernate HQL教程

    hibernate HQL详细教程,简单易学易懂 1.1 HQL基础 2 1.1.1 默认数据库表和数据 2 1.1.2 检索类的所有对象 4 1.1.3 检索类的某几个属性 5 1.1.4 指定别名 5 1.1.5 where条件子句 5 1.1.6 使用distinct过滤掉重复值 6...

    hibernate annotation帮助文档

    2.2.2. 映射简单属性 2.2.2.1. 声明基本的属性映射 2.2.2.2. 声明列属性 2.2.2.3. 嵌入式对象(又名组件) 2.2.2.4. 无注解之属性的默认值 2.2.. 映射主键属性 2.2.4. 映射继承关系 2.2.4.1. 每个类一张表 2.2....

    hibernate annotation 中文文档

    2.2.2. 映射简单属性 2.2.2.1. 声明基本的属性映射 2.2.2.2. 声明列属性 2.2.2.3. 嵌入式对象(又名组件) 2.2.2.4. 无注解之属性的默认值 2.2.. 映射主键属性 2.2.4. 映射继承关系 2.2.4.1. 每个类一张表 2.2.4.2. 每...

    Hibernate Annotations 中文文档

    2.2.2. 映射简单属性 2.2.2.1. 声明基本的属性映射 2.2.2.2. 声明列属性 2.2.2.3. 嵌入式对象(又名组件) 2.2.2.4. 无注解之属性的默认值 2.2.. 映射主键属性 2.2.4. 映射继承关系 2.2.4.1. 每个类一张表 2.2....

    Hive用户指南(Hive_user_guide)_中文版.pdf

    Hive 定义了简单的类 SQL 查询语言,称为 QL,它允许熟悉 SQL 的用户查询数据。 同时,这个语言也允许熟悉 MapReduce 开发者的开发自定义的 mapper 和 reducer 来处理 内建的 mapper 和 reducer 无法完成的复杂的...

    基于JPQL实现纯SQL语句方法详解

    基于首次在EJB2.0中引入的EJB查询语言(EJB QL),Java持久化查询语言(JPQL)是一种可移植的查询语言,旨在以面向对象表达式语言的表达式,将SQL语法和简单查询语义绑定在一起·使用这种语言编写的查询是可移植的,可以...

    NHibernate in Action by Christian Bauer

    我们同时也研究如何进行有效查询,如何过滤集合,使用原始的SQL而不是HQL,最后,本章还解释如何解决传统的性能问题,讨论n+1个查询问题和缓冲问题。 第八章提供了NHibernate的一些设计模式和实践方法。我们通过...

    Hibernate_二级缓存总结

    缓存可以简单的看成一个 Map ,通过 key 在缓存里面找 ...对于查询缓存来说,缓存的 key 是根据 hql 生成的 sql ,再加上参数,分页等信息(可以通过日志输出看到,不过它的输出不是很可读,最好改一下它的代码)。

    精通 Hibernate:Java 对象持久化技术详解(第2版).part4

     A.4.1 简单查询  A.4.2 连接查询  A.4.3 子查询  A.4.4 联合查询  A.4.5 报表查询 附录B Java语言的反射机制  B.1 Java Reflection API简介  B.2 运用反射机制来持久化Java对象 附录C 用XDoclet工具...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part2

     A.4.1 简单查询  A.4.2 连接查询  A.4.3 子查询  A.4.4 联合查询  A.4.5 报表查询 附录B Java语言的反射机制  B.1 Java Reflection API简介  B.2 运用反射机制来持久化Java对象 附录C 用XDoclet工具...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part3

     A.4.1 简单查询  A.4.2 连接查询  A.4.3 子查询  A.4.4 联合查询  A.4.5 报表查询 附录B Java语言的反射机制  B.1 Java Reflection API简介  B.2 运用反射机制来持久化Java对象 附录C 用XDoclet工具...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part1.rar

     A.4.1 简单查询  A.4.2 连接查询  A.4.3 子查询  A.4.4 联合查询  A.4.5 报表查询 附录B Java语言的反射机制  B.1 Java Reflection API简介  B.2 运用反射机制来持久化Java对象 附录C 用XDoclet工具...

    NHibernate参考文档 2.0.0 chm

    12. HQL: NHibernate查询语言 12.1. 大小写敏感性问题 12.2. from子句 12.3. 关联(Association)与连接(Join) 12.4. select子句 12.5. 聚集函数 12.6. 多态查询 12.7. where子句 12.8. 表达式 12.9. order by子句 ...

    Hibernate_3.2.0_符合Java习惯的关系数据库持久化

    14. HQL: Hibernate查询语言 14.1. 大小写敏感性问题 14.2. from子句 14.3. 关联(Association)与连接(Join) 14.4. join 语法的形式 14.5. select子句 14.6. 聚集函数 14.7. 多态查询 14.8. where子句 14.9....

    NHibernate中文帮组文档(2008.11月更新)

    12. HQL: NHibernate查询语言 12.1. 大小写敏感性问题 12.2. from子句 12.3. 关联(Association)与连接(Join) 12.4. select子句 12.5. 聚集函数 12.6. 多态查询 12.7. where子句 12.8. 表达式 12.9. order by子句 ...

    Hibernate+中文文档

    14. HQL: Hibernate查询语言 14.1. 大小写敏感性问题 14.2. from子句 14.3. 关联(Association)与连接(Join) 14.4. join 语法的形式 14.5. select子句 14.6. 聚集函数 14.7. 多态查询 14.8. where子句 14.9....

Global site tag (gtag.js) - Google Analytics