当我运行exception
以从我的表中获取id时,我得到jdbctemplate
。例外是:
org.springframework.dao.EmptyResultDataAccessException: Incorrect result size: expected 1, actual 0
我的脚本如下:
CREATE TABLE LOGIN(
PERSON_ID SERIAL PRIMARY KEY,
USERNAME VARCHAR(20) CHECK (USERNAME IS NOT NULL),
PASSWORD VARCHAR(20) CHECK (PASSWORD IS NOT NULL)
);
而jdbctemplate code
是:
@Override
public int getPersonId(UsernamePassword usernamePassword) {
return jdbcTemplate.queryForObject("SELECT PERSON_ID FROM LOGIN WHERE USERNAME = ? AND PASSWORD = ?", Integer.class,
usernamePassword.getUser_name(), usernamePassword.getPassword());
}
我也尝试了jdbctemplate
提供的其他方法,但我没有运气。我将不胜感激任何帮助。感谢。
答案 0 :(得分:1)
JdbcTemplate的queryForObject
期望执行的查询只返回一行。如果您获得0行或多于1行,则会产生IncorrectResultSizeDataAccessException
。
我想在你的情况下,queryForObject
返回行或多行,
因此,如果您不想抓住此IncorrectResultSizeDataAccessException
,请转而使用query
方法。