1

我已经查看了一段时间,似乎无法确定问题所在。

有什么突出的会导致java.sql.SQLException: No data found

 ResultSet rs = null;
 rs = s.executeQuery("SELECT * FROM customer");

 out.println("<tr><th>Customer ID</th><th>First Name</th>&nbsp;</th></tr>");

 while(rs.next()) {
  out.println("<tr><td>" + rs.getString("customer_id") + "</td><td>" + rs.getString("first_name") + "</td></tr>");
 }
4

1 回答 1

1

此异常消息是 JDBC-ODBC 桥驱动程序的典型消息。由于您显然使用的是 Oracle 数据库,因此您应该使用Oracle JDBC 驱动程序,而不是 JDBC-ODBC 桥驱动程序。由 DB 供应商提供的功能齐全的 JDBC 驱动程序在您能想到的所有方面都会表现更好。JDBC-ODBC 桥驱动程序充满了 bug,你不想知道。

我想我缩小了范围。customer_id 存储为数字。如果我从打印中取出 rs.getString("customer_id") ,那么它确实有效。应该是 getInt("customer_id") 还是类似的东西?

替换SELECT *SELECT colname1, colname2, colname3或使用getString(1)where1是列索引。但是,我还是更喜欢使用 Oracle 自己的纯 JDBC 驱动程序。

于 2010-08-20T23:35:09.610 回答