org.springframework.dao.EmptyResultDataAccessException

public Wcrash getWcrashInfo(int id) {
        String sql = "select plateform_id,android_version,app_version_code,app_version_name,device_id,"
                + "model,brand,product,stack_trace,crash_date,package_name from wcrash where id = ? ";
        return this.jdbcTemplate.queryForObject(
                sql, 
                new Object[]{id},
                new RowMapper<Wcrash>(){
                    @Override
                    public Wcrash mapRow(ResultSet rs, int i) throws SQLException {
                        Wcrash wcrash = new Wcrash();
                        wcrash.setPlateformId(toNullStr(rs.getString("plateform_id")));
                        wcrash.setAndroidVersion(toNullStr(rs.getString("android_version")));
                        wcrash.setAppVersionCode(toNullStr(rs.getString("app_version_code")));
                        wcrash.setAppVersionName(toNullStr(rs.getString("app_version_name")));
                        wcrash.setDeviceId(toNullStr(rs.getString("device_id")));
                        wcrash.setModel(toNullStr(rs.getString("model")));
                        wcrash.setBrand(toNullStr(rs.getString("brand")));
                        wcrash.setProduct(toNullStr(rs.getString("product")));
                        wcrash.setStackTrace(toNullStr(rs.getString("stack_trace")));
                        wcrash.setCrashDate(toNullStr(rs.getString("crash_date")));
                        wcrash.setPackageName(toNullStr(rs.getString("package_name")));
                        return wcrash;
                    } 
                });
    }

异常信息:

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:729)

queryForObject无记录时会抛出异常,而对于query()list的类型不会抛出此异常。解决方法就是捕获这个异常然后在catch中返回null就可以。修改代码如下:

public Wcrash getWcrashInfo(int id) {
        String sql = "select plateform_id,android_version,app_version_code,app_version_name,device_id,"
                + "model,brand,product,stack_trace,crash_date,package_name from wcrash where id = ? ";
        try{
            return this.jdbcTemplate.queryForObject(
                sql, 
                new Object[]{id},
                new RowMapper<Wcrash>(){
                    @Override
                    public Wcrash mapRow(ResultSet rs, int i) throws SQLException {
                        Wcrash wcrash = new Wcrash();
                        wcrash.setPlateformId(toNullStr(rs.getString("plateform_id")));
                        wcrash.setAndroidVersion(toNullStr(rs.getString("android_version")));
                        wcrash.setAppVersionCode(toNullStr(rs.getString("app_version_code")));
                        wcrash.setAppVersionName(toNullStr(rs.getString("app_version_name")));
                        wcrash.setDeviceId(toNullStr(rs.getString("device_id")));
                        wcrash.setModel(toNullStr(rs.getString("model")));
                        wcrash.setBrand(toNullStr(rs.getString("brand")));
                        wcrash.setProduct(toNullStr(rs.getString("product")));
                        wcrash.setStackTrace(toNullStr(rs.getString("stack_trace")));
                        wcrash.setCrashDate(toNullStr(rs.getString("crash_date")));
                        wcrash.setPackageName(toNullStr(rs.getString("package_name")));
                        return wcrash;
                    } 
                });
        }catch(EmptyResultDataAccessException e){
            return null;
        }
    }

 

 

 

转载于:https://www.cnblogs.com/yshyee/p/3611746.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值