`

hql语句显示列名,直接封装成VO

阅读更多

ssh项目中,我们在前台页面展示数据的时候,经常会用到VO类.也就是把要展示的数据封装成为VO对象.这样我们在前台页面从VO对象中取数据.我们通过hql查询.往往不会需要查询出实体的全部属性.那么我们如果查询出部分属性.hibernate会自动帮你封装成为object对象[].可是,我们想直接用对象怎么办?难道还要一个一个的setter循环赋值给VO吗.不用了.下面我们看看怎么在查询结果中显示列名.怎么将查询的结果直接封装成VO

先看我的VO类:

public class SureOrder {
	
	private Integer prodid;			//商品id
	private String name;  			//商品名
	private String imgurl;  		//图片
	private double cuxiaoPrice;		//赠送积分
	private double price;			//市场价
	private double newprice;		//会员价
	private String guiGe;    		//规格
	private double orderPirce;  	//下单费 扣除会员
	private double believeMoney;  	//爽约金
	private Date believerTime;  	//爽约时间
	private double puish;  			//违约金=此值+爽约金
	private Integer nums;				//购买数量
	private Integer typeid;			//1:现场结算/2:储值结算
	private String note;			//备注
	private String pinPai;   		//品牌
	private Integer types;			//类型 1=会员非标产品 3=标准产品 2=工商非标产品(默认:3)
	private Integer nodeId;			//小区邻郎ID
	private Integer qianyueId;		//签约店id
	private Integer proId;			//商品id
	private Integer factId;		//生产企业id
	private double subtotal;	//小计

 上面是所有的VO属性.在下面的hql语句中.as列的别名一定要用和VO类里面的列名一样.可以不返回.但是你如果返回就必须一样.因为你想用hibernate自动帮你封装成VO实体.hibernate底层也是通过setter方法自动帮你赋值的.

先看DAO:

 

public Query getProductDetail(Integer productId,String hql) {
		logger.debug("********************getProductDetail方法begin****************************");
		Query query = getSession().createQuery(hql);
		query.setInteger(0, productId);
		logger.debug("********************getProductDetail方法end****************************");
		return query;
	}

 

 

 dao层,我返回了一个query对象.我这样做是为了将所有的数据封装都放在了service.

 

接着看SERVICE:

public SureOrder getSureOrderVO(Integer productId) {
		String hql = "select pd.id as prodid,pd.cuxiaoPrice as cuxiaoPrice,pd.types as types,pd.price as price,pd.newprice as newprice,p.nodeId,p.imgurl as imgurl,p.types as types,p.factId as factId,p.qianYueId as qianyueId,p.guiGe as guiGe,p.name as name,p.pinPai as pinPai from Product pd,Prod p where p.id=pd.prodId and pd.id =?";
		Query query = productDao.getProductDetail(productId,hql);
		//主要起作用的就是下面的这个方法:SureOrder是我要封装的VO类.这样hibernate在执行hql查询的时候,会直接将结果封装为SureOrder对象.
		List list = query.setResultTransformer(Transformers.aliasToBean(SureOrder.class)).list();
		if(!list.isEmpty()){
			return (SureOrder) list.get(0);
		}
		return null;
	}

 看一下打印输出的语句:

订单信息:{"believeMoney":0,"cuxiaoPrice":10,"factId":411,"guiGe":"40*20*12","imgurl":"prodpric/logo.png","name":"电池","newprice":800,"nums":1,"orderPirce":0,"pinPai":"万里","price":1000,"prodid":104,"puish":0,"qianyueId":439,"subtotal":800,"types":3}

 看到了吗.列名出来了.并且都是键值对的方式.很方便我们用.不管你是用json序列化还是转换为VO类.很方便.不用去一个一个循环.并且对号setter了.

0
0
分享到:
评论

相关推荐

    全面解析HQL语句 非常详细直接的HQL语句的功能介绍

    标题:“全面解析HQL语句 非常详细直接的HQL语句的功能介绍” 描述:“非常详细直接实用的HQL语句的功能介绍看过的人保准都说好” 本篇文章将深入探讨HQL(Hibernate Query Language)的核心功能及其在数据查询...

    HQL语句 HQL语句

    HQL语句 HQL语句 HQL语句 HQL语句 HQL语句

    HQL语句大全HQL语句大全

    ### HQL语句详解 #### 一、HQL简介 HQL(Hibernate Query Language)是Hibernate框架中的查询语言,它提供了面向对象的方式来进行数据库查询。HQL语法接近于SQL但又有所不同,它允许开发者以面向对象的方式来表达...

    hibernate-HQL语句大全

    hibernate-HQL语句大全

    hql语句大全hql语句大全

    ### HQL语句详解:精通Hibernate查询语言 #### 引言 HQL(Hibernate Query Language)是Hibernate框架中用于执行数据库操作的一种强大的查询语言。它提供了面向对象的语法,允许开发人员以一种接近于编程语言的方式...

    HQL语句的语法

    HQL(Hibernate Query Language)是Hibernate框架中用于操作对象关系映射...通过这些基本元素,HQL提供了强大的查询能力,使得开发者能灵活地处理对象关系数据,而无需直接编写SQL,从而提高了代码的可读性和可维护性。

    最新HQL语句实例代码

    常见HQL语句的示例包括输出结果,以及语句的分析总结

    HQL语句查询

    HQL语句查询

    常用的hql语句用法解析

    本文将深入解析HQL语句的常见用法。 1. 大小写敏感性 HQL对Java类和属性的名称是大小写敏感的,但在关键字和表名方面,除了类名和属性名之外,HQL不区分大小写。因此,`SeLeCT`、`sELEct`和`SELECT`被视为相同,但`...

    hql语句语法详解hql语句

    ### HQL语句语法详解 HQL(Hibernate Query Language)是一种面向对象的查询语言,它提供了灵活而强大的机制来查询数据库中的数据,并将其映射到Java对象上。本篇文章将根据给定的信息深入探讨HQL的基本语法结构...

    Hibernate框架]Hql语句in中带参数的写法

    Hibernate框架Hql语句in中带参数的写法 Hibernate框架中,在使用HQL语句时,需要传递参数,而在HQL语句中使用in关键字时,需要特别注意参数的传递方式。在本文中,我们将讨论如何在HQL语句中使用in关键字带参数的...

    HQL语句(结合实例).doc

    HQL语句(结合实例).doc HQL语句(结合实例).doc HQL语句(结合实例).doc

    常用的HQL语句下载

    以下是一些常用HQL语句的使用与说明: 1. **HQL更新语句**: 更新操作允许您修改数据库中的对象属性。在示例中,第4行的HQL语句`update PhUser set realName=?`用于更新`PhUser`表中所有记录的`realName`字段。第5...

    HQL语句函数汇总(汇集了hql语句中大部分常用的函数)

    汇集了hql语句中大部分常用的函数 ABS(n) 取绝对值数学函数 数学函数 JPAQL HQL ABS(column_name[数字类型对象属性])

    HQL语句详解Select/update/deletefromwhere...

    ### HQL语句详解:Select/update/delete from where... 在探讨HQL(Hibernate Query Language)时,我们首先要了解它是一种用于Hibernate框架中的查询语言,其语法结构与标准SQL查询语言非常相似,但又针对对象关系...

    Hibernate中HQL语句的使用[参考].pdf

    Hibernate中HQL语句的使用 HQL(Hibernate Query Language)是 Hibernate 框架中的一种查询语言,它允许开发者使用面向对象的方式来查询数据库。HQL语句的使用是Hibernate中最重要的部分之一,本文将详细介绍HQL...

    hql语句 使用大全

    ### HQL语句使用大全 HQL(Hibernate Query Language)是一种面向对象的查询语言,它提供了灵活而强大的数据检索方式,使开发人员能够更高效地与数据库交互。本文将详细介绍HQL的基本用法及高级特性。 #### 1. ...

    完整的HQL 语句源码

    完整的HQL 语句形势如下: Select/update/delete…… from …… where …… group by …… having …… order by …… asc/desc 其中的update/delete 为Hibernate3 中所新添加的功能

Global site tag (gtag.js) - Google Analytics