我想查找数据库中simId最小和最大的两个数,用了如下的语句
String sql="select simId from simulation";
ResultSet rs=stmt.executeQuery(sql);String maxid=rs.getString("max(simId)");
String minid=rs1.getString("min(simId)");int maxsimid=java.lang.Integer.parseInt(maxid);
int minsimid=java.lang.Integer.parseInt(minid);int simcount;//记录仿真总数
simcount=maxsimid-minsimid;
simcount的值总是无法得到,请问是错在哪里?

解决方案 »

  1.   


    当然不可以,String maxid=rs.getString("max(simId)");
    查询数据返回的resultSet结果集中“max(simId)”,在oracle中没有这个列名,rs.getString"XXX"
    其中XXX是数据库字段名,你debug看看msxid肯定是空的
    String sql_1="select max(to_number(simId)) from simulation";
    ResultSet rs1=stmt.executeQuery(sql_1);
    String sql_2="select min(to_number(simId)) from simulation";
    ResultSet rs2=stmt.executeQuery(sql_2);
    Int maxid=rs1.int("1");
    Int minid=rs2.getInt("1");
    int simcount;//记录仿真总数
    simcount=maxid-minid;
      

  2.   

    你要先把最大,最大的选出来,用oracle的 max 和min函数,然后从ResultSet里面读出来
      

  3.   

    //字段使用别名
    String sql="select max(simId) as maxSimId, min(simId) as minSimId from simulation";
    ResultSet rs=stmt.executeQuery(sql);String maxid=rs.getString("maxSimId"); //通过别名获取,其实用getInt()就可以了,不需要自己转换
    String minid=rs1.getString("minSimId");int maxsimid=java.lang.Integer.parseInt(maxid);
    int minsimid=java.lang.Integer.parseInt(minid);int simcount;//记录仿真总数
    simcount=maxsimid-minsimid;
      

  4.   

    出现错误如下org.apache.jasper.JasperException: An exception occurred processing JSP page /record2.jsp at line 7269:  
    70: ResultSet rs=stmt.executeQuery(sql);
    71: //ResultSet rs1=stmt.executeQuery(sql);
    72: String maxid=rs.getString("maxSimId"); //通过别名获取,其实用getInt()就可以了,不需要自己转换
    73: String minid=rs1.getString("minSimId");
    74: 
    75: int maxsimid=java.lang.Integer.parseInt(maxid);这是怎么回事?
      

  5.   


    String sql = "SELECT MAX(simId),MIN(simId) FROM simulation;";
    int maxsimid = 0;
    int minsimid = 0;
    ResultSet rs=stmt.executeQuery(sql);
    while (rs.next())
    {
    maxsimid = rs.getInt(1);
    minsimid = rs.getInt(2);
    System.out.println(rs.getInt(1));
    System.out.println(rs.getInt(2));
    }
    int simcount = maxsimid - minsimid;
    System.out.println(simcount);楼主试试这个
      

  6.   

    8楼的code经过测试,是正确的,谢谢。但是我发现如果这两句int maxsimid = 0;int minsimid = 0;
    如果不赋值而只声明的话,也是会报错