本帖最后由 lhappyb 于 2010-08-26 09:54:13 编辑

解决方案 »

  1.   

    ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE去掉就可以了
      

  2.   

    不是很熟,没有在JSP里面干过这个,但是SQL语句可以写成一句啊
      

  3.   

    我这2个查询语句又不同用,写一起查询出来不方便调用了,jsp里面这几个数据库对象支持太弱,不好用啊
      

  4.   

    lz你好,不知道这么做的目的是什么,但我觉得这么做很不好,尽量不要让jsp做这么多的事情,要做个小例子的话,用个servlet也很好的,让jsp做这么多事情,没多大意义。
      

  5.   

     while(rs.next())
        {
           
          sql="select * from deviceTable where rackId= "+rs.getString("ID");      ResultSet rsd=stmt.executeQuery(sql);
          
          while(rsd.next())
          {
             out.print(rsd.getString("name"));
          }
          rsd.close();
    }
     rs.close();
      

  6.   

    将rs的结果集封装到一个list中。
    然后改写你的sql语句。
    因为你这样执行的效率太低,和数据库交互的次数多。
    Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
        String sql="select * from racktable"
        ResultSet rs=stmt.executeQuery(sql);
        StringBuffer sb=new StringBuffer();
        sb.append("select * from deviceTable where rackId in(");
        String code=",";
        while(rs.next())
        {
              sb.append(rs.getString("ID")+code);
        }
        String newsql=sb.toString().replaceAll(",(?!.*,)",")");
                //然后得到这个新的sql,一次执行就行了。
      

  7.   

    谢谢大家回复
    呵呵,刚学jsp,连什么叫serlet都不很清楚了,原来是搞asp.net的,有个项目需要java开发,所以有功能突击搞一下做个原型展示下了,所以只有这样了
    用意就是画机房平面图的,先取机架数据,用div画出,然后取机架中的设备数据,在用div画,仅此而已,
    没办法,赶鸭子上架了