我一直试图弄清楚为什么以下代码没有在我的 ResultSet 中生成任何数据:
String sql = "SELECT STUDENT FROM SCHOOL WHERE SCHOOL = ? ";
PreparedStatement prepStmt = conn.prepareStatement(sql);
prepStmt.setString(1, "Waterloo");
ResultSet rs = prepStmt.executeQuery();
另一方面,以下运行正常:
String sql = "SELECT STUDENT FROM SCHOOL WHERE SCHOOL = 'Waterloo' ";
PreparedStatement prepStmt = conn.prepareStatement(sql);
ResultSet rs = prepStmt.executeQuery();
SCHOOL 的数据类型是 CHAR(9 字节)。而不是setString,我也试过:
String sql = "SELECT STUDENT FROM SCHOOL WHERE SCHOOL = ? ";
PreparedStatement prepStmt = conn.prepareStatement(sql);
String school = "Waterloo";
Reader reader = new CharArrayReader(school.toCharArray());
prepStmt.setCharacterStream(1, reader, 9);
prepStmt.setString(1, "Waterloo");
ResultSet rs = prepStmt.executeQuery();
我完全不知道接下来要调查什么;Eclipse 调试器说,即使在 setString 或 setCharacterStream 之后,SQL 查询也不会改变。我不确定是不是因为设置参数不起作用,或者调试器根本无法获取 PreparedStatement 中的更改。
任何帮助将不胜感激,谢谢!