当我要检索数据库中不存在的数据时,我会遇到异常。我正在使用spring并使用JdbcTemplate来执行此操作。我想在这种情况下得到null。有人可以帮我解决这个问题吗?
Exception in thread "main" org.springframework.dao.EmptyResultDataAccessException: Incorrect result size: expected 1, actual 0
at org.springframework.dao.support.DataAccessUtils.requiredSingleResult(DataAccessUtils.java:71)
at org.springframework.jdbc.core.JdbcTemplate.queryForObject(JdbcTemplate.java:806)
at com.hojat.LibSpringMVCProject.DAO.BookDAO.getBookById(BookDAO.java:24)
at com.hojat.LibSpringMVCProject.service.BookService.getBookById(BookService.java:24)
at com.hojat.LibSpringMVCProject.service.TestService.main(TestService.java:37)
答案 0 :(得分:1)
如果要从此查询返回null您应该尝试捕获此示例中的异常:
//Assuming your querying for varchar column
String sqlSelect = "SELECT QUERIED_COLUMN
FROM YOUR_TABLE WHERE YOUR_CONDITION = ?";
try {
return getJdbcTemplate().queryForObject(sqlSelect,
new Object[] {yourParam}, String.class);
} catch (EmptyResultDataAccessException e) {
return null;
}
答案 1 :(得分:0)
考虑我想从id数据库中检索记录,在我的数据库id是101所以我想检索101个细节,当我运行程序时,o / p将生成如下所示
cid:101
cname:abhi
caddr:hyd
如果您尝试从数据库中检索数据并且数据库中不存在数据,则会生成以下异常
结果大小不正确:预期为1,实际为0
发生此异常可能有两个原因,第一个是错误的数据访问,第二个是数据库中不存在但您尝试访问的数据,这就是它。