我试图通过使用where子句与几个不同类型的参数从数据库中检索记录.这是我写的一个简单的方法,我将breedId和gender作为参数传递.
public ListsqlParameterSource(":breedId",breedId)
.addValue(":gender",gender));
}
private Listsql,MapsqlParameterSource parameters) {
Listsql,new DogRowMapper(),parameters);
return dogs;
}
我跑了这个方法,但得到了以下异常.任何人都可以让我知道如何将多个参数传递给jdbcTemplate.query(),我是一个新的.
{
timestamp: 1419637479460
status: 500
error: "Internal Server Error"
exception: "org.springframework.dao.TransientDataAccessResourceException"
message: "PreparedStatementCallback; sql [SELECT * FROM dog_entity WHERE breed__id = ? AND gender = ?]; Invalid argument value: java.io.NotSerializableException; nested exception is java.sql.sqlException: Invalid argument value: java.io.NotSerializableException"
path: "/api/2/m"
}
最佳答案
请用
public ListsqlParameterSource()
.addValue("breedId",breedId)
.addValue("gender",gender));
}
请确保jdbcTemplate是NamedParameterJdbcTemplate.
如果你需要使用JdbcTemplate那么
public List
public Listsql,Object[] parameters) {
Listsql,parameters,new DogRowMapper());
return dogs;
}
请确保breed__id具有正确的_字符数.
概念是使用NamedParameterJdbcTemplate和参数指定的名称:name(例如:gender)或带有位置参数的简单JdbcTemplate(例如new Object [] {breedId,gender}其中breedId匹配第一个?性别是第二个?) .
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。