我用的是tomcat4.0.6,使用微软的sql server 2000JDBC驱动,我已经把它们三个文件放到tomcat/lib下了,我实在想不出来还有什么原因了.

解决方案 »

  1.   

    这就是我的bean的主要出问题的代码:
    输出了:
    ccccccccccc
    ddddddddddd
    和sql,但往下就没输出
    try
        {
          System.out.println("ccccccccccccccccc");
          stmt = con.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,
     java.sql.ResultSet.CONCUR_READ_ONLY);
          System.out.println("ddddddddddddddddd");
          System.out.println("sql: " + sql); //这以上都正常输出,下面那句就不 
                                             //输出,但不抛异常.最奇怪的是,我
                                             //利用这个输出的sql在JB中测试,在
                                             //SQL Server 2000中测试,都能正确
                                             //数据结果,就JSP中不行
      
          rs = stmt.executeQuery(sql);       //到此执行停止,但不抛异常
          System.out.println("rs: " + rs);
        }
        catch (SQLException e)
        {
          System.out.println("Error in DatabaeBean.execuQuery(): 查询数据发生错误: " + e.getMessage());
          throw new SQLException();
        }
      

  2.   

    sql是不是null?
    stmt是不是null?
    rs是不是null?
    一步一步查吧.
      

  3.   

    是不是stmt==null?我觉得不是没有抛出异常,因为你只捕捉了SQLException
      

  4.   

    还有可能是数据库不支持stmt = con.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,  java.sql.ResultSet.CONCUR_READ_ONLY);这个
      

  5.   

    stmt:com.microsoft.jdbc.base.BaseStatment@4eb@43
    sql:select * from league where (Leagueid = 0)但再往下,就没输出,rs.next()根本就没执行到这就停了,在控制台没抛任何异常,而且奇怪的是,我在JB中利用同样的代码,就能查出结果来,我怀疑是不是我tomcat的配置不正确?但我没觉得查数据库要做什么特殊设置呀?
      

  6.   

    xiaofenguser(风雨):
      怎么说???如果说不支持,那我在JB中就不应该能查处结果来,是不是要在tomcat中设置什么?我在tomcat/lib下已经放了微软的三个驱动文件了,还有什么要做的吗???
      

  7.   

    这个我不大清楚,只是提示你一下.看到里面有个下面的出错提示.
    Unknown Source
    我没遇到这种情况,我一般直接用stmt = con.createStatement();
      

  8.   

    如果我:
    stmt = con.createStatement();
    能正常显示!!!!!
    奇怪了,为什么我的LSP不支持
          stmt = con.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY);
    ????????
    而在JB中就没有问题,是不是我什么设置不对?????我以前写JSP没遇到过这个问题呀!
      

  9.   

    或许是JDBC的原因吧,或许是两个用的不是同一个JDBC.
      

  10.   

    少用null,它会产生奇怪的错误,其异常提示却只得一句,要么是一大堆,总之是让人看不懂。而且在抛出nullpointerexception之后,相关语句就不会执行了,也不会有应有的异常报告。在google里搜索“NullPointerException”,即可找到这方面的讲解。
      

  11.   

    这是因为你没有判断rs是否为空造成的,在ResultSet rs = db.getResultSet(sql);  下面加这句话应该就行了
    if(rs.next())
    out.println("rs: " + rs);
      

  12.   

    Alfert(Alfert):
        问题不在这,因为我测试时用的是输出System.out.println("eeeeeee");
    然后才rs.next()的,但没输出eeeeeeeeee我现在发现,我的程序只在servlet中有这个问题,我特意做了个测试,同样的语句,都是一个查询,在servlet中就查不出结果,但只要
    stmt = con.createStatement();
    就能查出来,在其它类里就正常,没有任何错.
    是什么原因?
      

  13.   

    答案很明显,你用的JDBC不是同一版本的,JBuilder中的JDBC实现了
    con.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY);
    而tomcat中的JDBC则没有实现,建议更换JDBC.