往往在页面上展示数据的时候往往不是来自同一张数据表中,这就需要进行多表查询,我一般操作有两种方式:但这两种方式都需要建立一个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;
}
分享到:
相关推荐
使用AE如何获取excel表中数据,使得AE能够方便的使用excel数据。
Visual C++源代码 135 如何使用数据表获取数据读取器内容Visual C++源代码 135 如何使用数据表获取数据读取器内容Visual C++源代码 135 如何使用数据表获取数据读取器内容Visual C++源代码 135 如何使用数据表获取...
Python项目源码56_Python从多路径多Excel表中获取数据并存入新表.rar
通过SQL语句,将多个数据表装到一个dataset中
表中数据获取方法,包括文件名获取,数据编辑等等,方便的使用啦
获取Excel数据透视表数据,学习excel有帮助
打印MySQL中books表图书的名称和价格
一个通用的从SQL及ACCESS获取数据表的方法,已经实例化,开源
B编程实现获取数据库中数据库表名称的方法。...包含三个子程序:用ADO获取 SQLServer 数据表,用ADOx获取Aceess数据表,用DAO获取Aceess数据表,还可以设置Access数据库或Sql服务器名称,属于数据库开发应用的范畴
freemarker获取数据
微信小程序学习demo:从服务器获取数据,并且数据绑定组件(源代码+截图)微信小程序学习demo:从服务器获取数据,并且数据绑定组件(源代码+截图)微信小程序学习demo:从服务器获取数据,并且数据绑定组件(源代码+截图...
echarts从后台数据库获取数据并加载多组曲线echarts从后台数据库获取数据并加载多组曲线echarts从后台数据库获取数据并加载多组曲线
Python从多路径多Excel表中获取数据并存入新表
python实例56_Python从多路径多Excel表中获取数据并存入新表.rar
Python 自动办公- Python从多路径多Excel表中获取数据并存入新表 Python源码Python 自动办公- Python从多路径多Excel表中获取数据并存入新表 Python源码Python 自动办公- Python从多路径多Excel表中获取数据并存入新...
python自动办公-27 Python从多路径多Excel表中获取数据并存入新表
Oracle获取用户下所有表名 获取表所有的列名及数据类型 两个SQL查询语句
基于Vue,ElementUI快速创建生成表单,进行数据校验,获取表单数据
Python从多路径多Excel表中获取数据并存入新表.zip