查不到数据时抛出EmptyResultDataAccessException -.

查不到数据时抛出EmptyResultDataAccessException -.

spring查不到数据时抛出EmptyResultDataAccessException -.

 

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

 

 

使用jdbctemplate queryforobject 报出

org.springframework.dao.EmptyResultDataAccessException

spring这么做的目的

当使用jdbcTemplate的queryForObject的方法的时候,为何查不到记录的时候,要抛出

EmptyResultDataAccessException 异常,而不返回nulll, spring 这样做的目的是什么呢?

1、  设计可能是为了健壮性的考虑,防止用户不做null的判断。

2、  queryForObject方法是为查询结果有且仅(必须)有一条记录的情况而设计的

所以查询不出结果就抛出异常

3、  jdbcTemplate的异常都是RuntimeException,我估计它的设计思想就是你的程序只用考虑正常的处理逻辑而不用写一堆try..catch的东西,所有异常都直接抛给调用者处理。基于如上原则,每个方法有自己的正常结果,非正常结果都抛异常(包括没查到数据也算异常,因为你的逻辑是基于查到数据的)

----------------------------------------------

建议使用queryForList

----------------------------------------------

//     String sql = null;

//     String jsonData = null;

//    

//     sql = builderSQL(MANUSCRIPT_TABLE_NAME,MANUSCRIPT_TABLE_JSON_COLUMN_NAME,MANUSCRIPT_TABLE_NAME_PREFIX_NAME);

//     jsonData = simpleJdbcTemplate.queryForObject(sql,String.class, ReportConstants.FAPL_AFFIRM_OTHER_INCOME_APP_NO, projectId);

//    

//     JSONObject jsonObj = fromObject(jsonData);

//     return jsonObj;

 

 

   

String sql = builderSQL(MANUSCRIPT_TABLE_NAME,MANUSCRIPT_TABLE_JSON_COLUMN_NAME,MANUSCRIPT_TABLE_NAME_PREFIX_NAME);

       List<Map<String,Object>> listMap  = new ArrayList<Map<String,Object>>();

       listMap = simpleJdbcTemplate.queryForList(sql, ReportConstants.FAPL_AFFIRM_OTHER_INCOME_DET_NO,projectId);

       JSONObject jsonObj = new JSONObject();

       if(listMap!=null && listMap.size()>0){

           jsonObj = fromObject(listMap.get(0).get(MANUSCRIPT_TABLE_JSON_COLUMN_NAME));

       }

       return jsonObj;

转载于:https://my.oschina.net/liuruibin/blog/816070

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值