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. Blogger支持Mobile行动版网页 - Blog透视镜

    目前几乎人人都使用行动装置像是Pad,智能型手机等,而Blogger也针对此类的使用者,推出支持Mobile行动版网页,提供简单清爽的页面,方便在小屏幕上的阅读,在设定上也相当的简单,同时还可以在计算 ...

  2. 2015第15周日PostgreSQL学习

    英文版官网地址:http://www.postgresql.org/ 上面显示的最新版本信息是PostgreSQL 9.4.1, 9.3.6, 9.2.10, 9.1.15 & 9.0.19 ...

  3. bzoj2243-染色(动态树lct)

    解析:增加三个变量lc(最左边的颜色),rc(最右边的颜色),sum(连续相同颜色区间段数).然后就是区间合并的搞法.我就不详细解释了,估计你已经想到 如何做了. 代码 #include<cst ...

  4. onethink 验证码二维码不显示的问题

    常规思路: 1 检查GD和FreeType.在项目根目录(index.php同级)下放一个php文件 <?php echo phpinfo(); ?> 访问此文件,查看GD和FreeTyp ...

  5. java RMI入门指南

    感觉这篇文章不错,直接转了 RMI全称是Remote Method Invocation-远程方法调用,Java RMI在JDK1.1中实现的,其威力就体如今它强大的开发分布式网络应用的能力上,是纯J ...

  6. java多态的理解----部分非原创

    所谓多态,其实就是对于同一件事情,不同的对象要采取不同的行为,或者同一个对象在不同的情况下需要采取不同的行为方式. 不同的对象要采取不同的行为: 这有两种实现方式:接口实现和子类重新父类方法.这两种实 ...

  7. [HTML5] Level up -- Display

    HTML5 Input type: Traditionally presentational tags, the i, b, em, and strong tags have been given n ...

  8. Vs2012于Linux应用程序开发(2):图案

    1.1     代码提示功能 在vs中开发中,Visual Assist是一个很优秀的插件,我们仍然能够使用它进行代码的分析,但它仅仅能支持vcxprojproject,因而我们选择对vcxproj的 ...

  9. mysql免安装版配置与使用方法

    mysql免安装版配置与使用方法      以mysql-noinstall-5.1.6(win32)为例 1>把压缩文件mysql-noinstall-5.1.6-alpha-win32.zi ...

  10. HTTP协议4之缓存--转

    HTTP协议提供了非常强大的缓存机制, 了解这些缓存机制,对提高网站的性能非常有帮助. 缓存的概念 缓存这个东西真的是无处不在, 有浏览器端的缓存, 有服务器端的缓存,有代理服务器的缓存, 有ASP. ...