Dat*_*jam 49
如果这是Java抛出的SQLException,则很可能是因为您尝试从ResultSet获取或设置值,但您使用的索引不在该范围内.
例如,您可能尝试从结果集中获取索引3处的列,但是您只从SQL查询返回两列.
小智 7
使用Spring的SimpleJdbcTemplate,当我尝试这样做时,我得到了它:
String sqlString = "select pwy_code from approver where university_id = '123'";
List<Map<String, Object>> rows = getSimpleJdbcTemplate().queryForList(sqlString, uniId);
Run Code Online (Sandbox Code Playgroud)
我有一个queryForList的参数,它与SQL中的问号不对应.第一行应该是:
String sqlString = "select pwy_code from approver where university_id = ?";
Run Code Online (Sandbox Code Playgroud)请尝试此修复,因为我遇到了您的错误:
删除问号周围的单引号,这意味着,如果您使用保留参数(如 ('?','?','?') ),则应使其如下所示:
(?,?,?)
Run Code Online (Sandbox Code Playgroud)
我也遇到了这种类型的错误,问题是错误地使用了参数语句,比方说,你说你有这样的查询
SELECT * FROM EMPLOYE E WHERE E.ID = ?
Run Code Online (Sandbox Code Playgroud)
如果设置参数,则为preparedStatement对象(JDBC)
preparedStatement.setXXX(1,value);
preparedStatement.setXXX(2,value)
Run Code Online (Sandbox Code Playgroud)
然后它导致 SQLException: Invalid column index
所以,我将第二个参数设置删除到准备好的语句然后问题解决了