代码如下:Statement stmt = con.createStatement();
sql = "select "+tablename[0]+".child_id,"+tablename[0]+".child_value,"+tablename[1]+".child_value,"+tablename[2]+".child_value,"+tablename[3]+".child_value,"+tablename[4]+".child_value from "
+tablename[0]+","+tablename[1]+","+tablename[2]+","+tablename[3]+","+tablename[4]+" where "+tablename[0]+".child_id="+tablename[1]+".child_id and "
+tablename[1]+".child_id ="+tablename[2]+".child_id and "+tablename[2]+".child_id="+tablename[3]+".child_id and "+tablename[3]+".child_id="+tablename[4]+".child_id and "+tablename[0]+".child_statue='0'";
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
RecordManageVo vo = new RecordManageVo();
vo.setMsg2(rs.getString("tablename[0].child_value"));
vo.setMsg4(rs.getString("tablename[1].child_value"));
vo.setMsg5(rs.getString("tablename[2].child_value"));
vo.setMsg7(rs.getString("tablename[3].child_value"));
vo.setMsg1(rs.getString("tablename[4].child_value"));
//vo.setRecord_ID(rs.getInt("child_id"));
// vo.setMsg2(rs.getString("child_value"));
// vo.setMsg4(rs.getString("child_value"));
// vo.setMsg5(rs.getString("child_value"));
// vo.setMsg7(rs.getString("child_value"));
// vo.setMsg1(rs.getString("child_value"));
ret.add(vo);
}
con.close();
return ret; 如上:一般通过ResultSet 结果集取值时,直接用rs.getInt("child_id")就可以了,但是“child_id”只是属于一个数据库表的字段名称,如果查询时是多个数据库的话,如何添写,想上面写的“rs.getInt(tablename[4].child_value)”就是表明+其字段类型的格式,调试时报错误,org.apache.jasper.JasperException: The column name tablename[0].child_value was not found in this ResultSet.请各位大侠知道,这个是多个数据库表查询,而且每个表的结构都一样,字段都是child_value.我如何确认到是那个表的字段名称啊?
sql = "select "+tablename[0]+".child_id,"+tablename[0]+".child_value,"+tablename[1]+".child_value,"+tablename[2]+".child_value,"+tablename[3]+".child_value,"+tablename[4]+".child_value from "
+tablename[0]+","+tablename[1]+","+tablename[2]+","+tablename[3]+","+tablename[4]+" where "+tablename[0]+".child_id="+tablename[1]+".child_id and "
+tablename[1]+".child_id ="+tablename[2]+".child_id and "+tablename[2]+".child_id="+tablename[3]+".child_id and "+tablename[3]+".child_id="+tablename[4]+".child_id and "+tablename[0]+".child_statue='0'";
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
RecordManageVo vo = new RecordManageVo();
vo.setMsg2(rs.getString("tablename[0].child_value"));
vo.setMsg4(rs.getString("tablename[1].child_value"));
vo.setMsg5(rs.getString("tablename[2].child_value"));
vo.setMsg7(rs.getString("tablename[3].child_value"));
vo.setMsg1(rs.getString("tablename[4].child_value"));
//vo.setRecord_ID(rs.getInt("child_id"));
// vo.setMsg2(rs.getString("child_value"));
// vo.setMsg4(rs.getString("child_value"));
// vo.setMsg5(rs.getString("child_value"));
// vo.setMsg7(rs.getString("child_value"));
// vo.setMsg1(rs.getString("child_value"));
ret.add(vo);
}
con.close();
return ret; 如上:一般通过ResultSet 结果集取值时,直接用rs.getInt("child_id")就可以了,但是“child_id”只是属于一个数据库表的字段名称,如果查询时是多个数据库的话,如何添写,想上面写的“rs.getInt(tablename[4].child_value)”就是表明+其字段类型的格式,调试时报错误,org.apache.jasper.JasperException: The column name tablename[0].child_value was not found in this ResultSet.请各位大侠知道,这个是多个数据库表查询,而且每个表的结构都一样,字段都是child_value.我如何确认到是那个表的字段名称啊?
解决方案 »
- 如何将上传的excel文件导入sqlserver数据库
- 我JavaScript的语句为什么在网页中不起作用啊
- 为什么jsp输出excel有空行????(附代码)
- 有关iframe的问题,请帮帮忙~~~~~~~~~~~~~~~~~
- 关于JSP输出问题,无法显示JSP内容,请各位高手帮帮忙啊
- 大哥大姐好心肠,帮帮恩的忙。才想用struts,跑起来出了异常!运行时异常。郁闷ing……
- 请问用什么样的方法能够在浏览器中调用Excel来显示从数据库中读的数据,谢谢!
- 今天翻到老师以前讲的一个例子 有地方忘记是什么意思了 求帮忙解释下 谢谢
- javamail发邮件问题,大哥大姐们快来救急呀!
- 我用String[] PrintId= request.getParameterValues("print_bj");给PrintId字符数组付值后,我怎么能取得这个数组的长度呢?
- 用ant打包的区别
- 求jsf代码
vo.setMsg2(rs.getString(tablename[0].child_value));
symbol:variable child_value
location:class java.lang.string
select "+tablename[0]+".child_id as tb1_child_id ,"+tablename[0]+".child_value as tb1_child_value
vo.setMsg2(rs.getString("tb1_child_id"));
先把查出来的结果集区分开来
谢谢大家支持。
farandfaraway 谢谢你的指点。不过还是有问题。目前已经解决问题。直接加 vo.setMsg2(rs.getString(1));
vo.setMsg4(rs.getString(2));
vo.setMsg5(rs.getString(3));
vo.setMsg7(rs.getString(4));
vo.setMsg1(rs.getString(5));
按照select的顺序。就可以了。