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

hibernate 查询表中某几个字段

阅读更多

hibernate 查询表中某几个字段:

如,表emp中有如下的字段

Name            Type              Nullable   Default   Comments
--------         ------------         --------      -------      -------
EMPNO        NUMBER(4)                             
ENAME         VARCHAR2(10)  Y                        
JOB              VARCHAR2(9)    Y                        
MGR             NUMBER(4)        Y                        
HIREDATE    DATE                 Y                        
SAL              NUMBER(7,2)    Y                        
COMM          NUMBER(7,2)    Y                        
DEPTNO       NUMBER(2)       Y   

 

现在只需要查出其中的3个字段:EMPNO、ENAME、COMM

 

由于已经有一个实体类 EmpEntity 对应了表 emp,且类EmpEntity 中的属性都对应了表emp中的所有字段。

所以,要查询其中的3个字段,需要新建一个实体类 Employees,但是不需要配置 *.hbm.xml 关联文件。

代码如下:

 

实体类:Employees.java

    

public class Employees extends BaseEntity {

	/**
	 * @Fields serialVersionUID : 
	 */
	private static final long serialVersionUID = 3106850299455862020L;

	private BigDecimal empNO;
	private String empName;
	private BigDecimal comm;
	
	/**
	 * <p>Title: toString</p>
	 * <p>Description: 重写 toString() 方法</p>
	 * @return
	 * @see java.lang.Object#toString()
	 * @author 
	 */
	@Override
	public String toString() {

		StringBuffer buf = new StringBuffer("");

		buf.append("[EmpEntity:empNO=").append(empNO)
				.append("\n")
				.append("empName=").append(empName)
				.append("\n")
				.append("comm=").append(comm)
				.append("]");

		return buf.toString();
	}
	
	//下面省略 setter()/getter()
}

 

测试类:(使用junit 4.0)   

   

@Test
	public void findEmps() {

		String hql = "select EMPNO,ENAME,COMM from emp";

		Session session = HibernateUtil.currentSession();

		Query query = session.createSQLQuery(hql);

		List list = query.list();

		List<Employees> el = setList(list);

		if (null != el) {

			System.out.println("size=" + el.size());

			Employees emp = null;

			System.out.println("EMPNO\tENAME\tCOMM");

			try {

				for (int i = 0; i < el.size(); i++) {
					emp = el.get(i);
					System.out.println(emp.getEmpNO() + "\t" + emp.getEmpName()
							+ "\t" + emp.getComm());
				}

			} catch (Exception ex) {
				ex.printStackTrace();
			}

		} else {
			System.out.println("null");
		}
		HibernateUtil.closeSession();
	}

	private List<Employees> setList(List list) {

		List<Employees> empList = new ArrayList<Employees>(10);

		Employees emp = null;

		try {
			Object[] arr = null;
			BigDecimal empNO = null;
			String empName = null;
			BigDecimal comm = null;

			for (int i = 0; i < list.size(); i++) {

				emp = new Employees();

				arr = (Object[]) list.get(i);

				empNO = (BigDecimal) arr[0];
				empName = (String) arr[1];
				comm = (BigDecimal) arr[2];

				emp.setComm(comm);
				emp.setEmpName(empName);
				emp.setEmpNO(empNO);

				empList.add(emp);
			}
		} catch (Exception ex) {
			ex.printStackTrace();
		}

		return empList;
	}

 

 测试结果:

size=14
EMPNO	ENAME	COMM
7369	SMITH	null
7499	ALLEN	300
7521	WARD	500
7566	JONES	null
7654	MARTIN	1400
7698	BLAKE	null
7782	CLARK	null
7788	SCOTT	null
7839	KING	null
7844	TURNER	0
7876	ADAMS	null
7900	JAMES	null
7902	FORD	null
7934	MILLER	null

 

 

分享到:
评论

相关推荐

    Hibernate连表查询 Hibernate连表查询

    如果只需要查询结果中的一个或几个字段,可以像下面这样处理: ```java for (int i = 0; i (); i++) { Object[] o = (Object[]) list.get(i); System.out.println(o[0]); // 输出第一个字段的值 System.out....

    hibernate 进行多表查询每个表中各取几个字段

    本篇文章将探讨如何在Hibernate中进行多表查询,并从每个表中选取特定的字段。 一、Hibernate的多表查询基础 在Hibernate中,多表查询通常涉及到关联关系的映射,包括一对一(OneToOne)、一对多(OneToMany)、多...

    hibernate使用中与各种数据库字段类型对应类型训练

    ORM允许我们将数据库表结构映射到Java类,每个表对应一个类,表中的字段对应类的属性。这种映射是通过Hibernate的配置文件(如.hbm.xml)或者使用注解完成的。 对于不同的数据库字段类型,Hibernate提供了一系列的...

    hibernateHQL关联查询

    如果某条记录在另一个表中没有匹配,则不会显示这条记录。 2. **外连接(Outer Join)**: - **左外连接(Left Outer Join)**:除了返回两个表中满足连接条件的记录外,还会返回左表中不满足连接条件但右表中不...

    解决Hibernate中MySQL的中文排序

    总结来说,解决Hibernate中MySQL的中文排序问题需要关注以下几个方面: 1. 确保MySQL数据库和表使用支持中文的字符集,如GBK或UTF-8。 2. 在Hibernate配置中设置正确的字符集。 3. 使用`@OrderBy`注解或自定义比较...

    为数据库表设计可扩展的字段

    第一范式(1NF)要求每个字段都具有原子性,即字段值不可再分;第二范式(2NF)要求非主键字段完全依赖于主键,消除部分函数依赖;第三范式(3NF)要求非主键字段之间不存在传递依赖。更高层次的范式,如BCNF...

    hibernate查询语句--HQL

    本文将深入探讨 HQL 的几个关键方面,包括基本的查询语法、连接操作以及聚合函数等。 #### 基本查询语法 HQL 查询的基本语法与 SQL 非常相似,但又有所不同。以下是一些基本的 HQL 查询示例: 1. **简单查询**: ...

    hibernate 中HQL语句查询学习笔记

    ##### 检索类的某几个属性 如果只需要某些特定属性,可以通过如下方式指定: ```hql SELECT s.sname, s.sage FROM Student s; ``` 这条语句将返回所有学生的姓名和年龄。 ##### 指定别名 为了增强查询结果的...

    hibernate实现动态表查询的多种解决方案

    ### Hibernate 实现动态表查询的多种解决方案 #### 一、前言 在使用Hibernate进行数据库操作时,我们经常需要根据不同的需求对不同的表进行查询。特别是在处理多表、多库等复杂场景时,如何实现动态表查询就显得尤...

    Hibernate\hibernate3.2官方中文参考手册PDF

    在Hibernate 3.2版本中,有以下几个核心知识点: 1. **对象关系映射(ORM)**:Hibernate的核心功能就是实现Java对象与数据库表之间的映射。通过XML配置文件或注解,我们可以定义对象属性与数据库字段的对应关系,...

    Hibernate SQLQuery 查询Oracle char类型结果为一个字符解决方法

    然而,在使用Hibernate执行SQL查询时,如果查询的目标表中存在char类型的字段,Hibernate有时会将该字段的数据映射成一个字符,而非完整的字符串。这主要是由于Hibernate默认的映射机制所导致的,即对于char类型的...

    Hibernate几个常见错误解决方式

    如果数据库中确实没有这个字段,需要更新实体类或者删除不必要的映射。 2. **SQL语法错误**: 错误信息:`Column 'df' in where clause is ambiguous` 这个错误表示在SQL查询中的`df`字段无法明确它属于哪个表。...

    Hibernate中文文档+hibernate annotation +distribution

    在使用Hibernate进行数据库操作时,有几个关键概念值得深入理解: 1. 实体(Entity):在Hibernate中,实体对应数据库中的表,通过@Entity注解声明。 2. 映射(Mapping):实体和数据库表之间的关系通过XML或注解...

    Hibernate官方中文参考手册

    此外,开发者在使用Hibernate时还需要了解它的架构,Hibernate架构主要由以下几个核心组件构成: 1. SessionFactory:负责初始化Hibernate,管理Hibernate配置信息和映射信息。 2. Session:表示应用程序和数据库...

    hibernate 的createSQLQuery的几种用法

    在连接了多个表的查询中,可能出现同样名字的字段,这时我们可以使用占位符来避免字段名重复的问题,例如: ```java List cats = sess.createSQLQuery("select {cat.*} from cats cat").addEntity("cat", Cat.class)...

    Hibernate操作数据库大字段的示例(附源码及详细开发使用方法)。

    压缩包中的源码可能包括以下几个部分: 1. `pom.xml`:Maven项目配置文件,包含依赖项,如Hibernate、Struts、JSP等。 2. `hibernate.cfg.xml`:Hibernate配置文件。 3. `Article.hbm.xml`:实体类的映射文件,或者...

    hibernate中文文档

    在Hibernate中,主要涉及以下几个核心概念: 1. **实体(Entities)**:在Hibernate中,实体代表数据库中的表,是业务逻辑中的对象。通过注解或XML配置,我们可以将Java类与数据库表关联起来。 2. **Session**:...

    Spring+Hibernate 自动映射

    标题中的“Spring+Hibernate 自动映射”是指在Java Web开发中,利用Spring框架与Hibernate ORM工具进行数据层的整合,实现对象关系映射(ORM)的自动化处理。这一技术结合了Spring的强大依赖注入(DI)和事务管理...

    hibernate单表基本操作实例

    【描述】虽然描述部分为空,但通常这类实例会涵盖以下几个关键步骤: 1. **环境搭建**:首先,你需要在项目中引入Hibernate库,配置相应的pom.xml或build.gradle文件。此外,还需要设置Hibernate的配置文件...

    hibernate分页查询

    FirstResult表示从结果集的第几个元素开始获取,MaxResults则限制返回的最大记录数。 二、使用Criteria API进行分页 1. 创建Criteria对象:`Criteria criteria = session.createCriteria(entityClass);` 2. 设置...

Global site tag (gtag.js) - Google Analytics