Spring管理JDBCTemplate之EmptyResultDataAccessException异常)
在使用Spring管理JDBC时,一般使用JdbcDaoSupport类下的JdbcTemplate模板。该模板提供了几个方法:
用于增删改:
update(String sql,Object args)
用于查询:
-
查询单列单个数据:
queryForObject(String sql,XXX.class)
-
查询多列多个数据:
queryForMap(String sql)
-
查询单行数据:
queryForObject(String sql,Object[] args,RowMapper<T> rowMapper)
-
查询多行数据:
query(String sql,Object[] args,RowMapper<T> rowMapper)
当该JDBC管理模板根据sql语句在数据库中查找不到数据时,会抛出EmptyResultDataAccessException异常,而不是返回null。这是为了避免程序员不对空值进行处理。
此时如果想返回null可以使用try-catch对该异常进行处理:
public T mySqlMethod() {
try{
return this.getJdbcTemplate().queryForObject(sql, new RowMapper<T>() {
@Override
public Courier mapRow(ResultSet resultSet, int i) throws SQLException {
return "OK";
}
});
}catch (EmptyResultDataAccessException e){
return null;
}
}
版权声明:本文为m0_49528561原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。