源代码:

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    processRequest(request, response);

    String facName[] = null;
    int rows = 0;
    double scr[] = null;

    PrintWriter out=response.getWriter();
    try {
        String sql;
        ResultSet rs;
        Class.forName("com.mysql.jdbc.Driver");
        Connection c1 = DriverManager.getConnection("jdbc:mysql://localhost:3306/apj", "root", "root");
        Statement s = c1.createStatement();
        sql="select * from teacherreportA";
        rs=s.executeQuery(sql); 

        rs.last();
        int len = rs.getRow();
        rs.beforeFirst();
        double score[] = new double[len];
        String facItr[] = new String[len];
        int lenCnt = 0;

       //  ****upto here it is working fine but                         
        while(rs.next()) {
            facItr[lenCnt] = rs.getString("tname");
            lenCnt++;
        }

        lenCnt = 0;
        rs.beforeFirst();
        //            rsM.close();

        while(lenCnt<len) {
            //            ResultSet rs ;
            //                 Class.forName("com.mysql.jdbc.Driver");
            //                c1=DriverManager.getConnection("jdbc:mysql://localhost:3306/apj", "root", "root");
            //   s =c1.createStatement();

            score[lenCnt]=0;
            out.println(lenCnt+" here "+len+"  ");
            int a,b,c,d;

            sql = "select * from teacherreportA where tname = \""+facItr[lenCnt]+"\"";
            out.println("  !!!  "+sql);
            rs=s.executeQuery(sql);

            try {
                // here rs.(any method) is generating error java.sql.SQLException  out.println(rs.findColumn("tname")+"***"+rs.getString("tname"));
            } catch(SQLException exp) { 
                out.println("  $$$ "+exp.toString());
            }

            a=rs.getInt(4);
            b=rs.getInt(5);
            c=rs.getInt(6);
            d=rs.getInt(7);
            score[lenCnt] += (a*100+b*75+c*50+d*25)/(a+b+c+d);
            out.println(lenCnt+"here");
            sql="select * from teacherreportB where tname = '"+facItr[lenCnt]+"'";

===============>>#1 票数:0

代码很丑陋。 我不喜欢将光标移到末尾再返回。 当您使用自动调整大小的List替换数组时,可以完全跳过此部分。

循环真的很奇怪,因为您像第一个查询一样循环访问相同的数据。 没关系,您必须关闭结果集,然后再对同一条语句执行另一个查询。

参见javadoc

默认情况下,每个Statement对象只能同时打开一个ResultSet对象。 因此,如果一个ResultSet对象的读取与另一个对象的读取是交错的,则每个都必须由不同的Statement对象生成。 如果存在打开的语句,Statement接口中的所有执行方法都会隐式关闭该语句的当前ResultSet对象。

  ask by Charchit translate from so

未解决问题?本站智能推荐:

1回复

从结果集对象中检索元素

我想从结果集对象中检索blob元素,并且想在一个窗口中一一显示数据库中的所有图像。 下面是我的数据库表。 下面是我的代码servlet代码,用于从数据库中检索图像 Image.java 上面的代码检索图像并从第1行显示图像。当i变为2时,即i = 2。它显示异常“ j
1回复

正在获取:HTTP状态500-无法确定以下类型:整数:可能是什么原因?

尝试运行Servlet InsertDribble时,出现异常: 我不知道原因。 Servlet: dribble.hbm.xml: POJO: SQL查询表:
1回复

获取XML包中返回的SQLException消息?

我目前正在尝试调试与JDBC连接池连接时遇到问题的Java servlet。 注意:我的servlet三天前工作正常,但是现在停止工作了,所以我假设它是Sun One Web服务器或数据库问题,但没有错误消息,我不知道发生了什么。 我的servlet通常通过浏览器返回XML响应,但是
1回复

通过servlet获取sql中的先前记录

我试图通过单击浏览器上的提交按钮来获取oracle中的先前记录,但是异常即将到来java.sql.SQLSyntaxErrorException:ORA-00905:缺少关键字 ,我在以下代码中做错了什么? 我有一个名为abc的表,其两列名为F和S,具有5条记录。 实际上,我要执行的
1回复

从servlet以自动增量方式在oracle中获取记录

我在oracle中有一个名为abc的表,并有4条记录,如下所示: 当用户单击“下一步”按钮时,我想要一个接一个地获取上述记录: 针对home.jsp ----------------- 单击NEXT按钮后,从servlet NewServlet.java获取第一行(Appl
4回复

如何从JSP文件遍历ResultSet?

我在servlet文件中有一条简单的语句,该语句将遍历数据库并获取结果集 如您所见,我正在将ResultSet发送到JSP文件。 在该JSP文件中,我尝试像这样遍历整个JSP文件。 但是当我这样做时,我得到一个错误。 我是否以错误的方式进行迭代,还是无法通过ResultSet
1回复

从servlet中的表(oracle)中获取数据并传递给jsp

在我的数据库中,表名是abc ,它只包含如下一行: 其中第一列名称为F,第二列名称为S,第三列名称为T,依此类推。 在home.jsp中----------- 在NewServlet1中doPost --------- result.jsp中------------
1回复

具有2个结果集循环的Servlet

在我的servlet中,我连接了两个表,并且希望只显示一个表,而另一个表则要显示,只要没有显示数据即可。 此Servlet将根据所选的ID显示其属性, 继承人的代码 我该怎么做? 视图servlet 我试过把第一张桌子放在外面,但我得到的只是这个错误 是的,所以它
1回复

通过servlet获取oracle中第二行,第三行... 200行的表

我在oracle中有一个名为abc的表,有4条记录如下: 针对home.jsp NewServlet.java display.jsp 当我将继续点击home.jsp和display.jsp NEXT按钮时,如何获取第3和第4条记录,直到第100行?
2回复

如何在jsp中获取日期值并将其更新为mysql

我必须将日期动态插入数据库中,如何获取文本值并更新它? 我尝试了以下代码。 UPDATE classifiedads SET expiry_date='"+ textBox[i]+"' where 应该从上面的代码中检查什么情况。 我想将文本框中的已编辑值保存到数据库中,但