Spring EmptyResultDataAccessException异常的源码分析和解决方法
来源:互联网 发布:手机淘宝设置货到付款 编辑:程序博客网 时间:2024/06/04 19:13
在spring中使用jdbcTemplate的queryForObject()方法时,如果查询的结果为空是会出现如下错误信息
org.springframework.dao.EmptyResultDataAccessException: Incorrect result size: expected 1, actual 0org.springframework.dao.support.DataAccessUtils.(DataAccessUtils.java:71)org.springframework.jdbc.core.JdbcTemplate.queryForObject(JdbcTemplate.java:729)
经查看源码时发现 找到requiredSingleResult方法:
- public static <T> T requiredSingleResult(Collection<T> results) throws IncorrectResultSizeDataAccessException {
- int size = (results != null ? results.size() : 0);
- if (size == 0) {
- throw new EmptyResultDataAccessException(1);
- }
- if (results.size() > 1) {
- throw new IncorrectResultSizeDataAccessException(1, size);
- }
- return results.iterator().next();
- }
解决方法:就是在该方法上捕获异常即可
public boolean login(UsersBean usersBean) {
// TODO Auto-generated method stub
String sqlTemp = tradeSqlConfig.getSql("login_user");
String result;
try {
result = jdbcTemplate.queryForObject(sqlTemp,new Object[]{usersBean.getUserId(),usersBean.getPassword()},String.class);
} catch (DataAccessException e) {
result=null;
}
return result != null ? true : false;
}
0 0
- Spring EmptyResultDataAccessException异常的源码分析和解决方法
- Spring中EmptyResultDataAccessException异常的处理方法
- Spring中EmptyResultDataAccessException异常产生的原理及处理方法
- spring事务常见问题、异常分析和解决方法
- Spring-JdbcTemplate的queryForObject方法EmptyResultDataAccessException异常产生的原理及处理方法
- Spring源码分析【6】-ThreadLocal的使用和源码分析
- Spring 异常处理器 源码分析总结
- EmptyResultDataAccessException
- Spring aop事务异常回滚(rollbackFor)机制和源码分析
- TOMCAT异常退出分析和解决方法
- Tomcat异常退出分析和解决方法
- TOMCAT异常退出分析和解决方法
- Spring源码分析【2】-Tomcat和Sping的连接点
- spring security3的源码分析
- spring的JdbcTemplate源码分析
- spring源码分析-spring上下文的初始化
- Struts2的声明式异常源码分析
- Spring Bean组件实现和源码分析
- MediaPlayer 实现自选音乐作为消息提示音
- JS算法(获取斐波那契数列的前n项)
- 基于DragonBoard 410c的智能门铃系列一之系统总构架
- ubuntu16.04安装cuda8和opencv3.2
- DES加密算法工具类
- Spring EmptyResultDataAccessException异常的源码分析和解决方法
- 带返回值的Python多线程方法
- [leetcode: Python]122. Best Time to Buy and Sell Stock 2
- 验证java执行了默认初始化
- MySQL 触发器
- udp发送结构体实例
- Servlet 编写过滤器
- MySQL 约束和修改数据表
- easyui combotree 实现勾选checkbox 同时选择所有子节点,取消父节点同时取消所有子节点