我尝试将号码传递给PrepareStmt,但是会收到此错误。我无法理解我的问题。
查询:
private static final String SQL_FIND_ALL_CALENDARS = "SELECT * FROM calendar WHERE idCall > '?';";
功能:
private List<Calendar> findAll(Connection con) throws SQLException {
List<Calendar> calendar = new ArrayList<Calendar>();
PreparedStatement prsmt = null;
ResultSet rs = null;
try {
prsmt = con.prepareStatement(SQL_FIND_ALL_CALENDARS);
prsmt.setInt(1, TestOracleJDBC.idCall);
rs = prsmt.executeQuery();
while (rs.next()) {
Calendar calendar2 = extractCalendar(rs);
calendar.add(calendar2);
}
} catch (SQLException ex) {
ex.printStackTrace();
} finally {
rs.close();
prsmt.close();
}
return calendar;
}
在其他课程中我的参数:
public static int idCall = 1;
答案 0 :(得分:0)
单引号('
)表示SQL中的字符串文字。使用绑定变量时,不应该用引号括住?
- 这会将其更改为带有问号的字符串文字,而不是绑定值的占位符。
只需删除它就可以了:
private static final String SQL_FIND_ALL_CALENDARS =
"SELECT * FROM calendar WHERE idCall > ?";
// Here -------------------------------^