今天,遇上了java.sql.SQLException: No value specified for parameter3
List<Map<String, String>> list = (ArrayList) jdbcTemplate.query("select packetRule.ruleName , packetRule.paraCheck , packetRule.ruleCheck ,packetRule.type ,packetManager.packetName " +
" from packetRule,packetManager where" +
" ruleName like concat('%',?,'%') " +
"or paraCheck like concat('%',?,'%')" +
"or ruleCheck like concat('%',?,'%')" +
" AND packetRule.packetId = packetManager.id AND packetManager.packetName = '" + packetName +
"'ORDER BY packetRule.id DESC ",
new PreparedStatementSetter() {
@Override
public void setValues(java.sql.PreparedStatement preparedStatement) throws SQLException {
preparedStatement.setString(1, searchKey);
preparedStatement.setString(2, searchKey);
}
},
new RowMapperResultSetExtractor(new RowMapper() {
public Object mapRow(ResultSet rs, int index)
throws SQLException {
Map u = new HashMap(); //可以是自己的JavaBean值对象(简单Java对象POJO)
u.put("ruleName", rs.getString("ruleName"));
u.put("paraCheck", rs.getString("paraCheck"));
u.put("ruleCheck", rs.getString("ruleCheck"));
u.put("type", rs.getString("type"));
u.put("packetName", rs.getString("packetName"));
return u;
}
}));
排查后发现,是由于第三个参数没有对应上的原因。故:增加一个值:
preparedStatement.setString(3, searchKey);
java.sql.SQLException: No value specified for parameter3
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。