《深入浅出Hibernate》读书笔记1——属性查询

本文介绍使用Hibernate进行属性查询的方法,包括直接查询特定属性和使用构造对象实例的方式进行封装。此外,还介绍了如何利用HQL进行统计函数操作。

《深入浅出Hibernate》实在是本好书,使用Hibernate的人都应该读一读,夏昕写的文章的确读起来不累,有些书是读起来很累的。。。

今天说一下属性查询:使用HQL的时候并不是把 hbm.xml 里面的所有属性取出来,只取出有用的属性便可以了,举个例子:

List list =  session.createQuery("select user.name,user.age from TUSER user").list();
Iterator it 
= list.iterator();
while(it.hasNext())
{
      Object[] results 
= (Object[])it.next();
      System.out.println(results[
0]);
      System.out.println(results[
1]);
}

 

如果觉得返回数组的方式不够符合面向对象的风格,也可以使用构造对象实例的方法对数组进行封装:

 

List list = this.session.createQuery(" select new TUser(user.name,user.age) from TUser as user").list();
Iterator 
if = list.iterator();
while(it.hasNext())
{
    TUser user 
= (TUser)it.next();
    System.out.println(user.getName());
}

 

着爱与那个就比较形象化一些,但是有一点要注意的是这个查询结果的TUser对象仅仅是一普通的 java 对象,进用于对查询结果的封装,除了在构造是赋予的属性值外,其他属性均为未赋值状态,这就意味着,我们无法通过 Session 对此对象进行更新,如果企图对 user 对象更新将导致向数据库插入一条新的记录,而不是更新原有记录:

 

while(it.hasNext())
{
   TUser user 
= (TUser)it.next();
    user.setName(
"test");
    session.saveOrUpdate(user);
//这里将导致一次 insert 操作,而非 update
}

 

也可以使用像 SQL 那样的统计函数,比如:

selet count(*),min(user.age) from TUser as user
select upper(user.name) from TUser as user
select distinct user.name from TUser as user
本资源为我国藏东南地区矢量边界及30米分辨率数字高程模型(DEM)数据,包含可编辑MXD工程文件、标准Shapefile矢量文件以及标准成图TIF文件。数据经过规范化整理与制图处理,空间结构完整、精度较高,可直接应用于GIS空间分析、地形地貌研究、生态环境评估以及科研教学等多种应用场景,为开展藏东南地区相关研究提供可靠的基础地理数据支持。从区域地理位置来看,藏东南地区位于西藏自治区东南部,处于青藏高原向云贵高原及南亚山地过渡的重要地带,是高原地区地形变化最为剧烈的区域之一。该地区受横断山脉构造体系影响显著,山地纵横分布,深切峡谷发育明显,形成典型的高山峡谷地貌景观。其中雅鲁藏布江在该区域形成著名的大拐弯与深切峡谷地貌,是世界上最深的峡谷之一。在地形地貌特征方面,藏东南地区整体海拔较高,但地形起伏极为显著,山地、峡谷和高原谷地交错分布。区域内河流多沿断裂构造和山谷方向发育,河谷深切,坡度较大。30米分辨率DEM数据能够较为精细地反映区域地形起伏、高程变化以及山脉与河谷的空间分布特征,可用于坡度、坡向、地形阴影、流域划分以及地形分析等多种GIS空间分析。在数据内容方面,本资源提供藏东南地区范围矢量边界数据,可用于区域范围提取、空间叠加分析及专题制图等应用。同时提供30米分辨率DEM高程数据,可支持地形建模、水文分析以及地貌研究等多种空间分析操作。配套的MXD工程文件已完成标准制图配置,用户可在ArcGIS平台中直接进行编辑与成果输出。此外,本资源还提供标准成图TIF文件,可直接用于科研论文插图、报告展示及教学演示。整体数据格式规范、结构清晰,可兼容ArcGIS、QGIS等主流GIS软件平台,适用于地理信息系统分析、山地地貌研究、气候变化研究及相关科研工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值