Java.sql.SQLException:未找到数据

5

这是Ajax jsp页面的一部分

while(rs.next())  
  {
      System.out.println(rs.getString("Flat_No"));
      buffer=buffer+"<option value='"+rs.getString("Flat_No")+"'>"+rs.getString("Flat_No")+"</option>";   
  } 

Flat_No中共有4个值,它在控制台打印第一个值后,我在jsp页面上收到“java.sql.SQLException: No data found”错误。

1个回答

11

在使用贫瘠的JDBC-ODBC桥接驱动程序通过MS Access数据库检索相同数据多次并从结果集中获取时,这是一个典型的错误。您需要将数据检索一次并将其分配给变量,然后多次使用该变量而不是直接从结果集中检索。

while (rs.next()) {
    String flatNo = rs.getString("Flat_No");
    buffer += "<option value='" + flatNo + "'>" + flatNo + "</option>";   
}

与具体问题无关,在JSP文件中这样做是不明智的选择。另请参见使用MVC和DAO模式将JDBC ResultSet显示在HTML中的JSP页面上,这是另一个如何以正确方式完成此操作的具体示例。


解决了,谢谢。我也支持MVC,但我的组织说不要使用它,因为我的项目业务逻辑不是很复杂/我的项目主要执行诸如INSERT、UPDATE、DELETE之类的数据库操作。 - Shaggy
1
不用谢。请注意防范XSS和SQL注入攻击漏洞。 - BalusC

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接