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;
}
}

org.springframework.dao.EmptyResultDataAccessException的更多相关文章

  1. (后端)org.springframework.dao.EmptyResultDataAccessException: Incorrect result size: expected 1,actual 0

    两种方案: 用queryForList方法替换queryForObject或者queryForMap,因为这两个方法必须要有值,不能为空. 把这个异常捕获,用try/catch. 这个查询的结果是nu ...

  2. 【异常】Caused by: java.lang.ClassNotFoundException: org.springframework.dao.DataIntegrityViolationException

    Caused by: java.lang.ClassNotFoundException: org.springframework.dao.DataIntegrityViolationException ...

  3. org.springframework.dao.DataIntegrityViolationException:

    数据库用的hibernate,开发工具用的myeclipse,使用开发工具连接数据库生成hibernate基于xml的po类,运行时报org.springframework.dao.DataInteg ...

  4. javaEE-----org.springframework.dao.InvalidDataAccessApiUsageException: Write operation

    org.springframework.dao.InvalidDataAccessApiUsageException: Write operations are not allowed in read ...

  5. org.springframework.dao.InvalidDataAccessApiUsageException: Parameter value [41] did not match expected type [java.lang.Integer (n/a)];

    题记:以前记录过一些自己遇到的BUG,这个行为,让我一看报错的提示信息就能定位到问题的所在,后来记得比较多了,好多是重复性的再加上比较忙就没有详细的记录了,今天的工作量比较小,就顺便记录一下,以便以后 ...

  6. org.springframework.dao.InvalidDataAccessApiUsageException:The given object has a null identifi的解决方案

    异常信息: org.springframework.dao.InvalidDataAccessApiUsageException: The given object has a null identi ...

  7. org.springframework.dao.InvalidDataAccessApiUsageException: Write operations are not allowed in read-only mode

    [spring]:org.springframework.dao.InvalidDataAccessApiUsageException: Write operations are not allowe ...

  8. OpenSessionInViewFilter与org.springframework.dao.InvalidDataAccessApiUsageException

    报错:org.springframework.dao.InvalidDataAccessApiUsageException: Write operations are not allowed in r ...

  9. org.springframework.dao.InvalidDataAccessApiUsageException: detached entity passed to persist: sys.entity.Role; nested exception is org.hibernate.PersistentObjectException: 的解决方案

    1.错误信息 org.springframework.dao.InvalidDataAccessApiUsageException: detached entity passed to persist ...

随机推荐

  1. php读取文件的各种方法

    博客根据http://www.ibm.com/developerworks/cn/opensource/os-php-readfiles个人总结 获取文件全部内容 以下归类是按平时我们通常的使用方法总 ...

  2. Oracle 10g RAC启动与关闭命令

    一. 检查共享设备 一般情况下, 存放OCR 和 Voting Disk 的OCFS2 或者raw 都是自动启动的. 如果他们没有启动,RAC 肯定是启动不了的. 1.1 如果使用ocfs2的,检查o ...

  3. Oracle Sequence与Trigger的使用

    一:建立sequence -- Create sequence create sequence SEQ_PUSH minvalue maxvalue start increment cache ; 二 ...

  4. HttpAsyncClient 的简单使用

    下载地址:http://hc.apache.org/downloads.cgi 在NetBeans中导入以下jar文件: 1:一次请求: public static void oneReuest(){ ...

  5. Django 403错误:CSRF verification failed. Request aborted

    网上有解决办法,我自己的组合是: 一,FORM加标识 <form action="" method="post"> {% csrf_token %} ...

  6. C51汇编伪指令

    1.DS ---预留存储区命令格式: [标号:] DS   表达式值其功能是从指定地址开始,定义一个存储区,以备源程序使用.存储区预留的存储单元数由表达式的值决定. ;从标号TEP地址处开始保留1个存 ...

  7. MCM1988 问题B_lingo_装货问题

    两辆平板车的装货问题有七种规格的包装箱要装到两辆铁路平板车上去包装箱的宽和高是一样的但厚度(t,以厘米计)及重量(,以公斤计)是不同的.下表给出了每种包装箱的厚度重量以及数量每辆平板车有10.2 米长 ...

  8. 利用智能手机(Android)追踪一块磁铁(二)

    在上一篇博客中提到了利用磁场强度推算传感器位置坐标的公式,下面就介绍怎么利用智能手机完成磁铁的追踪(任何具有磁感应器的装置均可以),这里主要是利用Android手机. 1:程序步骤: 首先将磁铁放置在 ...

  9. zedboard--Opencv移植和zedboard测试(十一)

    继上次生成了ARM架构的链接库之后,我们要把他们拷贝到装载有文件系统的SD卡中即可,在拷贝时,最好是/usr/lib下 实践一:将那些lib拷贝到U盘里面,因为之前跑过demo,里面就是一个简易的li ...

  10. C#开发客户端、JAVA和tomcat开发服务端

    hessian入门,Hello和文件上传范例,C#客户端+Java Tomcat后台 2.Hello范例1)后台--定义Java接口:package org.migle.hessian; public ...