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;
}
}
org.springframework.dao.EmptyResultDataAccessException的更多相关文章
- (后端)org.springframework.dao.EmptyResultDataAccessException: Incorrect result size: expected 1,actual 0
两种方案: 用queryForList方法替换queryForObject或者queryForMap,因为这两个方法必须要有值,不能为空. 把这个异常捕获,用try/catch. 这个查询的结果是nu ...
- 【异常】Caused by: java.lang.ClassNotFoundException: org.springframework.dao.DataIntegrityViolationException
Caused by: java.lang.ClassNotFoundException: org.springframework.dao.DataIntegrityViolationException ...
- org.springframework.dao.DataIntegrityViolationException:
数据库用的hibernate,开发工具用的myeclipse,使用开发工具连接数据库生成hibernate基于xml的po类,运行时报org.springframework.dao.DataInteg ...
- javaEE-----org.springframework.dao.InvalidDataAccessApiUsageException: Write operation
org.springframework.dao.InvalidDataAccessApiUsageException: Write operations are not allowed in read ...
- org.springframework.dao.InvalidDataAccessApiUsageException: Parameter value [41] did not match expected type [java.lang.Integer (n/a)];
题记:以前记录过一些自己遇到的BUG,这个行为,让我一看报错的提示信息就能定位到问题的所在,后来记得比较多了,好多是重复性的再加上比较忙就没有详细的记录了,今天的工作量比较小,就顺便记录一下,以便以后 ...
- org.springframework.dao.InvalidDataAccessApiUsageException:The given object has a null identifi的解决方案
异常信息: org.springframework.dao.InvalidDataAccessApiUsageException: The given object has a null identi ...
- org.springframework.dao.InvalidDataAccessApiUsageException: Write operations are not allowed in read-only mode
[spring]:org.springframework.dao.InvalidDataAccessApiUsageException: Write operations are not allowe ...
- OpenSessionInViewFilter与org.springframework.dao.InvalidDataAccessApiUsageException
报错:org.springframework.dao.InvalidDataAccessApiUsageException: Write operations are not allowed in r ...
- 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 ...
随机推荐
- 【CCNA学习笔记】1.思科路由器的基本配置
教学视频来源:http://edu.51cto.com/lesson/id-10930.html. 怎么安装模块.连交叉线什么的视频里面老师说的很清楚了,我只记录一下IOS配置的命令(虽然一副不明觉厉 ...
- Effective Java2读书笔记-类和接口(三)
第17条:要么为继承而设计,并提供文档说明,要么就禁止继承 第18条:接口优于抽象类 这两条中,提到了一个很重要的概念骨架实现.也就是说,抽象类实现接口的形式.这样的好处是,接口本来不能提供默认的实现 ...
- 火狐的打开3D效果
最近研究网页的时候,想看看一个页面中盒子的层次问题,点击右键查看元素的后,没有发现3D效果的按钮. 在网上百度后说要什么显卡支持,以为是公司的电脑用的是集显,就没有这个功能.回去用自己的笔记本后,发现 ...
- 10个经典的Android开源项目(附源码包)
最近在抽空学习Android系统开发,对Android学习也比较感兴趣,刚开始学就试着在网上找几个项目源码研究看下,以下就将找到的Android项目源码列出,希望对正在或准备学习Android系统开发 ...
- Intent.ACTION_TIME_TICK 广播
Intent.ACTION_TIME_TICK 广播需要动态注册,不能在清单文件配置. TimeReceiver mBroadcastReceiver = new TimeReceiver(); In ...
- explorer.exe进程简单介绍
explorer.exe是Windows程序管理器或者Windows资源管理器,它用于管理Windows图形壳,包括开始菜单.任务栏.桌面和文件管理.不过也发现有大量的恶意病毒木马插入到explore ...
- [Android开发常见问题-18] Connection to https://dl-ssl.google.com refused
在使用Android SDK Manager的时候,有时候会遇到上述问题,其实原因很简单,属于本地配置的问题. 解决方法: 1.以文本文件的方式打开“C:\Windows\System32\drive ...
- c++之 常用类型
C/C++常用类型的范围 C/C++里常用的类型及表示范围如下表所示: 类型 sizeof 表示范围 说明 char 1 -128 - 127 -2^7 - (2^7 - 1) short 2 -32 ...
- Java客户端Jedis的八种调用方式
redis是一个著名的key-value存储系统,而作为其官方推荐的java版客户端jedis也非常强大和稳定,支持事务.管道及有jedis自身实现的分布式. 在这里对jedis关于事务.管道和分 ...
- 2014 (多校)1011 ZCC Loves Codefires
自从做了多校,整个人都不好了,老是被高中生就算了,题老是都不懂=-=原谅我是个菜鸟,原谅我智力不行.唯一的水题. Problem Description Though ZCC has many Fan ...