org.springframework.dao.EmptyResultDataAccessException: Incorrect result size: expected 1, actual 0

EmptyResultDataAccessException异常处理

org.springframework.dao.EmptyResultDataAccessException: Incorrect result size: expected 1, actual 0

导致该异常的原因

使用 Druid 连接池进行条件查询,期望返回一条结果,但实际没有任何结果返回,而是中断程序并抛出 EmptyResultDataAccessException 异常。

public UserInfo getInfoByName(String name) {
    UserInfo u = null;
    String sql = "select * from userinfo where userName=?";
    u = template.queryForObject(sql, new BeanPropertyRowMapper<UserInfo>(UserInfo.class), name);
    return u;
}
如何处理该异常

由于这里是个sql查询语句,我们明确的知道当字段 userName 的值不等于参数 name 时应该是返回 null ,所以我们在捕获了 EmptyResultDataAccessException 异常后直接返回一个 null 值。

public UserInfo getInfoByName(String name) {
	UserInfo u = null;
	try {
		String sql = "select * from userinfo where userName=?";
		u = template.queryForObject(sql, new BeanPropertyRowMapper<UserInfo>(UserInfo.class), name);
	} catch (EmptyResultDataAccessException e){
	    return null;
	}
	return u;
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值