`

获取多表中的数据

阅读更多
往往在页面上展示数据的时候往往不是来自同一张数据表中,这就需要进行多表查询,我一般操作有两种方式:但这两种方式都需要建立一个VO,就是需要将查询出来的数据用一个临时VO接受。
第一种做法:通过构造
1.先建立VO,vo的属性就是页面上显示的数据(如果页面上的数据来自一个表,就不需要这个操作了,因为一般都会给每个表建立一个对应的PO,数据直接从PO中获取接)
public class ErBaseStationVo {
	private String id;//基站信息objectid
	private String stationId;//基站编号
	private String stationName;//基站名称
	private String planLong;//滚动规划精度
	private String planLat;//滚动规划纬度
	private String isImport;//是否已导入
	public ErBaseStationVo(String id, String stationId, String stationName,
			String planLong, String planLat,String isImport) {
		super();
		this.id = id;
		this.stationId = stationId;
		this.stationName = stationName;
		this.planLong = planLong;
		this.planLat = planLat;
		this.isImport=isImport;
	}
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getStationId() {
		return stationId;
	}
	public void setStationId(String stationId) {
		this.stationId = stationId;
	}
	public String getStationName() {
		return stationName;
	}
	public void setStationName(String stationName) {
		this.stationName = stationName;
	}
	public String getPlanLong() {
		return planLong;
	}
	public void setPlanLong(String planLong) {
		this.planLong = planLong;
	}
	public String getPlanLat() {
		return planLat;
	}
	public void setPlanLat(String planLat) {
		this.planLat = planLat;
	}
	public String getIsImport() {
		return isImport;
	}
	public void setIsImport(String isImport) {
		this.isImport = isImport;
	}
	
}


2.通过sql语句查出每条记录,通过Object类型的List集合接受数据,这个List中的元素都是Object类型的,将其进行转换,通过构造函数,将获得的数据存到我们之前定义好的List中,代码如下:
public List<ErBaseStationVo> getAllStationVoInfoByProjectId(String projectId,String empId) {
		String sql="select e.objectId,e.gstaId,e.gstaPlanName,e.gstaDesLongit,e.gstaDesLatit,e.gisImport  from ErBaseinfo e where e.projectId='"+projectId+"' "
				+ " and e.ldesignInsId='"+empId+"'";
		List list=basedao.find(sql);
		List<ErBaseStationVo> returnlist=new ArrayList<ErBaseStationVo>();
		for (Object object : list) {
			Object[] o=(Object[]) object;
			returnlist.add(new ErBaseStationVo((String)o[0], (String)o[1], (String)o[2], (String)o[3], (String)o[4],(String)o[5]));
		}
		return returnlist;
	}

第二种做法:通过Transformers函数

1.依然是建立我们的VO,这个VO有一个空构造函数
public class StationForDesignerVO {
	private String objectId;
	private String stationName;//基站规划名称
	private String gbelongBanner;//旗县
	private String gnetStandard;//网络制式
	private String gsight;//场景
	private String gstaBuildState;//物理站建设状态
	
	public StationForDesignerVO(){
		
	}
	
	public StationForDesignerVO(String objectId, String stationName,
			String gbelongBanner, String gnetStandard, String gsight,
			String gstaBuildState) {
		super();
		this.objectId = objectId;
		this.stationName = stationName;
		this.gbelongBanner = gbelongBanner;
		this.gnetStandard = gnetStandard;
		this.gsight = gsight;
		this.gstaBuildState = gstaBuildState;
	}
	public String getObjectId() {
		return objectId;
	}
	public void setObjectId(String objectId) {
		this.objectId = objectId;
	}
	public String getStationName() {
		return stationName;
	}
	public void setStationName(String stationName) {
		this.stationName = stationName;
	}
	public String getGbelongBanner() {
		return gbelongBanner;
	}
	public void setGbelongBanner(String gbelongBanner) {
		this.gbelongBanner = gbelongBanner;
	}
	public String getGnetStandard() {
		return gnetStandard;
	}
	public void setGnetStandard(String gnetStandard) {
		this.gnetStandard = gnetStandard;
	}
	public String getGsight() {
		return gsight;
	}
	public void setGsight(String gsight) {
		this.gsight = gsight;
	}
	public String getGstaBuildState() {
		return gstaBuildState;
	}
	public void setGstaBuildState(String gstaBuildState) {
		this.gstaBuildState = gstaBuildState;
	}
	
}


2.通过sql语句查询数据,与上一种不同的是,需要将每个字段重命名即as,之后的每个字段与建立的VO中的属性名一致即可,用Hibernate的转换函数即可实现内容的存储,比第一种方便的多
public List<StationForDesignerVO> getStationInfo(String projectId) {
		// TODO Auto-generated method stub
		String hql="select e.objectId as objectId,e.gstaPlanName as stationName,e.gbelongBanner as gbelongBanner,"
				+ " e.gnetStandard as gnetStandard,e.gsight as gsight,e.gstaBuildState as gstaBuildState  from ErBaseinfo e "
				+ " where e.projectId='"+projectId+"' and e.ldesignInsId='未分配'";
		Session session=basedao.sessionFactory.openSession();
		Query query=session.createQuery(hql);
		query.setResultTransformer(Transformers.aliasToBean(StationForDesignerVO.class));
		List<StationForDesignerVO> list=query.list();
		return list;
	}
0
2
分享到:
评论
1 楼 _lsliang 2015-03-30  
直接使用Query的addEntity方法?

相关推荐

    AE获取excel表中数据

    然后,创建一个`IQueryDef`对象,它是查询定义的接口,用于定义从工作空间中获取数据的条件。在这里,`Tables`属性设为要查询的Excel工作表名("[学生分组名单$]"),`SubFields`设为 "*" 表示选择所有字段,`...

    获取Excel数据透视表数据

    在Excel中,数据透视表是一种强大的数据分析工具,它可以...在“9获取数据透视表数据.xls”文件中,你可以找到一个实际的例子来练习和掌握这些技能。不断练习和探索,Excel的数据透视表将成为你强大的数据分析工具。

    Visual C++源代码 135 如何使用数据表获取数据读取器内容

    Visual C++源代码 135 如何使用数据表获取数据读取器内容Visual C++源代码 135 如何使用数据表获取数据读取器内容Visual C++源代码 135 如何使用数据表获取数据读取器内容Visual C++源代码 135 如何使用数据表获取...

    layui-table表复选框勾选的所有行数据获取的例子

    文章中给出的示例代码非常清晰地展示了获取数据的完整过程。首先,在HTML结构中,通过设置`lay-data`属性定义了表格的配置,包括加载数据的URL、表格的id、以及行数据的id等信息。 然后,在JavaScript中,通过监听...

    Kettle实现多表数据全量抽取

    【标题】"Kettle实现多表数据全量抽取"涉及的主要知识点是Kettle(Pentaho Data Integration,简称PDI)工具在数据处理中的应用,尤其是如何进行多表数据的同步与更新。Kettle是一款开源的数据集成工具,以其强大的...

    echarts从后台数据库获取数据并加载多组曲线

    在本文中,我们将深入探讨如何使用 ECharts 从后台数据库获取数据,并加载多组曲线,以便在 Web 应用程序中展示动态、交互的数据。 首先,要实现这个功能,我们需要以下几部分: 1. **数据接口**:你需要创建一个...

    kettle全量多表数据同步

    ### Kettle全量多表数据同步 #### 一. 建立资料库 在进行全量多表数据同步之前,首先需要建立一个资源库来存放所有的转换和作业。资源库是Kettle的一个核心概念,它用于存储和管理转换、作业和其他与数据处理相关...

    获取数据库中表结构信息

    ### 获取数据库中表结构信息 在数据库管理与应用开发过程中,了解特定表的结构是非常重要的。这不仅可以帮助我们更好地理解数据存储方式,还能够指导我们在应用程序中如何有效地使用这些数据。本文将详细介绍如何...

    ResultSet对象获取数据的各种方法

    ### ResultSet对象获取数据的各种方法 在Java编程语言中,`ResultSet`对象是处理数据库查询结果的核心组件之一。它充当一个可滚动的、可更新的数据表,用于存储从数据库执行SQL语句后返回的结果集。本文将详细介绍...

    UVC图像获取及Extension unit数据获取

    我们将主要关注如何高效地获取UVC设备的图像以及利用Extension unit来获取更多类型的数据。 首先,让我们理解什么是UVC图像获取。UVC是USB设备类规范的一部分,它定义了摄像头设备与主机之间的通信协议。通过遵循...

    java调用OPC获取点位数据

    Java调用OPC(OLE for Process Control)获取点位数据是一项常见的工业自动化任务,尤其在SCADA(Supervisory Control and Data Acquisition)系统中。OPC是微软平台上的一个标准接口,它允许不同厂商的软件应用程序...

    Python数据分析与应用:从数据获取到可视化

    Python数据分析与应用是一个涵盖多个领域的综合主题,包括数据获取、数据清洗、数据分析、数据可视化以及相关的编程技巧。在这个领域,Python以其简洁易读的语法和丰富的库支持,成为了数据科学界的首选工具。以下是...

    Oracle获取用户下所有表名 获取表所有的列名及数据类型.txt

    Oracle获取用户下所有表名 获取表所有的列名及数据类型 两个SQL查询语句

    Echarts动态获取数据(C#)

    在C#环境中,我们可以利用Echarts与后端服务器进行交互,动态地从数据库或其他数据源获取数据,并在前端展示。下面将详细解释如何在C#中实现Echarts动态获取数据。 1. **Echarts基本配置**: 首先,你需要在HTML...

    java 获取全国省市区数据

    java 获取全国省市区数据

    Python自动办公实例-Python从多路径多Excel表中获取数据并存入新表.zip

    总的来说,这个实例覆盖了Python自动化办公的基本流程,通过学习和实践,你可以掌握从多源获取数据、处理数据并进行分析的技能,这对于提升工作效率和进行大数据处理非常有帮助。在实际应用中,你还可以结合网络爬虫...

    通过解析sql语句获取表血缘关系项目

    在IT行业中,数据库管理和数据...总结来说,"通过解析SQL语句获取表血缘关系项目"是一个关键的数据管理实践,它依赖于对SQL的深入理解和合适的工具,以揭示数据库中的数据流动路径,从而支持更高效、更合规的数据操作。

    对DataTable分页获取数据

    ### 对DataTable进行分页获取数据的方法解析 在处理大量数据时,为了提高用户体验及系统性能,通常会采用分页技术来展示数据。本篇文章将详细解释如何针对`DataTable`对象实现分页功能,并通过示例代码来具体说明其...

    rxtx java获取电子称重量数据完整版

    rxtx java获取电子称重量数据完整版 最近因为要弄一个网页获取电子称重量的功能,所以去查看了这方面的资料,找了许多人的资料,看了许多。这个对于我来说本来就是新东西,更加不懂。所以这个东西对于新手很适合,...

    获取元数据表hbase meta和用户表信息.png

    该脑图是介绍获取元数据表hbase meta和用户表信息,请贡献给大家下载!

Global site tag (gtag.js) - Google Analytics