我正在使用Java 8和oracle。
我已确认此代码有效:
Statement stmt = null;
String query = "select * from custref";
stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(query);
while (rs.next()) {
String cName = rs.getString("CUSTOMER_NAME");
System.out.println(cName);
}
当我将其更改为此时,它不会产生任何结果:
PreparedStatement prepStmt = null;
String query = "select * from custref where CUSTOMER_NUMBER = ?";
prepStmt = con.prepareStatement(query);
prepStmt.setString(1, "12344321");
ResultSet rs = prepStmt.executeQuery();
while (rs.next()) {
String cName = rs.getString("CUSTOMER_NAME");
System.out.println(cName);
}
我已经确认我的数据类型是VARCHAR,因此是设置的字符串。我知道我的连接很好,因为基本搜索仅在我切换到参数化时起作用,它不会失败或引发异常,而它没有结果集。我也尝试了:customerNumber约定而不是?而且这也不起作用。这真是令人尴尬,但我在这里已尽头,似乎找不到任何解决的办法。