往往在页面上展示数据的时候往往不是来自同一张数据表中,这就需要进行多表查询,我一般操作有两种方式:但这两种方式都需要建立一个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;
}
分享到:
相关推荐
然后,创建一个`IQueryDef`对象,它是查询定义的接口,用于定义从工作空间中获取数据的条件。在这里,`Tables`属性设为要查询的Excel工作表名("[学生分组名单$]"),`SubFields`设为 "*" 表示选择所有字段,`...
本篇文章将详细探讨如何使用C#通过SQL查询从数据库中获取多个数据表,并将它们加载到一个DataSet对象中。DataSet是.NET框架中的一个关键组件,它提供了一种离线存储数据的方式,可以容纳多个DataTable,每个...
在本案例中,我们将学习如何利用Python从多个路径下的多个Excel文件中获取数据,并将这些数据存储到一个新的Excel表中。 首先,要实现这一功能,我们需要借助一些Python库,其中最核心的是`pandas`库。`pandas`是一...
Visual C++源代码 135 如何使用数据表获取数据读取器内容Visual C++源代码 135 如何使用数据表获取数据读取器内容Visual C++源代码 135 如何使用数据表获取数据读取器内容Visual C++源代码 135 如何使用数据表获取...
### Kettle全量多表数据同步 #### 一. 建立资料库 在进行全量多表数据同步之前,首先需要建立一个资源库来存放所有的转换和作业。资源库是Kettle的一个核心概念,它用于存储和管理转换、作业和其他与数据处理相关...
在本文中,我们将深入探讨如何使用 ECharts 从后台数据库获取数据,并加载多组曲线,以便在 Web 应用程序中展示动态、交互的数据。 首先,要实现这个功能,我们需要以下几部分: 1. **数据接口**:你需要创建一个...
- 如果你选择使用ADODB,你需要创建`Connection`和`Recordset`对象,然后通过`Fields`集合获取数据类型。基本流程与DAO类似,只是对象和方法不同。 ```vba Dim conn As ADODB.Connection Dim rs As ADODB....
### 获取数据库中表结构信息 在数据库管理与应用开发过程中,了解特定表的结构是非常重要的。这不仅可以帮助我们更好地理解数据存储方式,还能够指导我们在应用程序中如何有效地使用这些数据。本文将详细介绍如何...
### ResultSet对象获取数据的各种方法 在Java编程语言中,`ResultSet`对象是处理数据库查询结果的核心组件之一。它充当一个可滚动的、可更新的数据表,用于存储从数据库执行SQL语句后返回的结果集。本文将详细介绍...
这个名为"Python从多路径多Excel表中获取数据并存入新表.zip"的压缩包文件,显然包含了关于如何使用Python来处理多个Excel文件中的数据,并将这些数据整合到一个新的Excel表格中的教程或代码示例。 首先,我们来看`...
Python 自动办公- Python从多路径多Excel表中获取数据并存入新表 Python源码Python 自动办公- Python从多路径多Excel表中获取数据并存入新表 Python源码Python 自动办公- Python从多路径多Excel表中获取数据并存入新...
6. **多线程**:为了不影响用户界面的响应,数据获取和处理过程通常在后台线程执行,使用TThread或Delphi的异步操作。 7. **数据缓存与更新**:为了减少频繁的网络请求,可以采用本地缓存策略,仅在必要时更新数据...
我们将主要关注如何高效地获取UVC设备的图像以及利用Extension unit来获取更多类型的数据。 首先,让我们理解什么是UVC图像获取。UVC是USB设备类规范的一部分,它定义了摄像头设备与主机之间的通信协议。通过遵循...
java 获取全国省市区数据
在IT行业中,数据库管理和数据...总结来说,"通过解析SQL语句获取表血缘关系项目"是一个关键的数据管理实践,它依赖于对SQL的深入理解和合适的工具,以揭示数据库中的数据流动路径,从而支持更高效、更合规的数据操作。
- **多线程**:如果需要同时获取多只股票的数据,可以考虑使用多线程技术,提升效率。 通过以上步骤,你就可以利用VBA在Excel中创建一个自定义工具,轻松获取和分析股票历史数据。这个工具对于个人投资者进行股票...
总结来说,C#中的异步委托是实现主线程显示数据、子线程获取数据的关键技术。通过合理运用异步编程,可以显著提升用户体验,避免UI卡顿,同时确保后台任务的顺利执行。理解并熟练掌握这种编程模式,对于开发高效且...
在C#环境中,我们可以利用Echarts与后端服务器进行交互,动态地从数据库或其他数据源获取数据,并在前端展示。下面将详细解释如何在C#中实现Echarts动态获取数据。 1. **Echarts基本配置**: 首先,你需要在HTML...
该脑图是介绍获取元数据表hbase meta和用户表信息,请贡献给大家下载!
### 对DataTable进行分页获取数据的方法解析 在处理大量数据时,为了提高用户体验及系统性能,通常会采用分页技术来展示数据。本篇文章将详细解释如何针对`DataTable`对象实现分页功能,并通过示例代码来具体说明其...