代码如下: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.我如何确认到是那个表的字段名称啊?

解决方案 »

  1.   

    vo.setMsg2(rs.getString("tablename[0].child_value")); 
    vo.setMsg2(rs.getString(tablename[0].child_value)); 
      

  2.   

    不过我不加""netbean编辑器就报错误了提示 cannot find symbol
         symbol:variable child_value
         location:class java.lang.string
      

  3.   

    vo.setMsg2(rs.getString(tablename[0]+".child_value"));
      

  4.   

    sorry !
    select   "+tablename[0]+".child_id as tb1_child_id ,"+tablename[0]+".child_value as tb1_child_value
    vo.setMsg2(rs.getString("tb1_child_id")); 
    先把查出来的结果集区分开来
      

  5.   

    XIEXIE 我县实验一下。
    谢谢大家支持。
      

  6.   


     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的顺序。就可以了。