diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/core/JdbcTemplate.java b/spring-jdbc/src/main/java/org/springframework/jdbc/core/JdbcTemplate.java index 37946c5e410..323ea95542e 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/core/JdbcTemplate.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/core/JdbcTemplate.java @@ -35,7 +35,6 @@ import java.util.HashMap; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; - import javax.sql.DataSource; import org.springframework.dao.DataAccessException; @@ -1199,28 +1198,29 @@ public class JdbcTemplate extends JdbcAccessor implements JdbcOperations { * @param resultSetParameters Parameter list of declared resultSet parameters for the stored procedure * @return Map that contains returned results */ - @SuppressWarnings("rawtypes") - protected Map extractReturnedResults( - CallableStatement cs, List updateCountParameters, List resultSetParameters, int updateCount) + protected Map extractReturnedResults(CallableStatement cs, + List updateCountParameters, List resultSetParameters, int updateCount) throws SQLException { Map returnedResults = new HashMap(); int rsIndex = 0; int updateIndex = 0; boolean moreResults; - if (!skipResultsProcessing) { + if (!this.skipResultsProcessing) { do { if (updateCount == -1) { if (resultSetParameters != null && resultSetParameters.size() > rsIndex) { - SqlReturnResultSet declaredRsParam = (SqlReturnResultSet)resultSetParameters.get(rsIndex); + SqlReturnResultSet declaredRsParam = (SqlReturnResultSet) resultSetParameters.get(rsIndex); returnedResults.putAll(processResultSet(cs.getResultSet(), declaredRsParam)); rsIndex++; } else { - if (!skipUndeclaredResults) { + if (!this.skipUndeclaredResults) { String rsName = RETURN_RESULT_SET_PREFIX + (rsIndex + 1); SqlReturnResultSet undeclaredRsParam = new SqlReturnResultSet(rsName, new ColumnMapRowMapper()); - logger.info("Added default SqlReturnResultSet parameter named " + rsName); + if (logger.isDebugEnabled()) { + logger.debug("Added default SqlReturnResultSet parameter named '" + rsName + "'"); + } returnedResults.putAll(processResultSet(cs.getResultSet(), undeclaredRsParam)); rsIndex++; } @@ -1228,16 +1228,18 @@ public class JdbcTemplate extends JdbcAccessor implements JdbcOperations { } else { if (updateCountParameters != null && updateCountParameters.size() > updateIndex) { - SqlReturnUpdateCount ucParam = (SqlReturnUpdateCount)updateCountParameters.get(updateIndex); + SqlReturnUpdateCount ucParam = (SqlReturnUpdateCount) updateCountParameters.get(updateIndex); String declaredUcName = ucParam.getName(); returnedResults.put(declaredUcName, updateCount); updateIndex++; } else { - if (!skipUndeclaredResults) { - String undeclaredUcName = RETURN_UPDATE_COUNT_PREFIX + (updateIndex + 1); - logger.info("Added default SqlReturnUpdateCount parameter named " + undeclaredUcName); - returnedResults.put(undeclaredUcName, updateCount); + if (!this.skipUndeclaredResults) { + String undeclaredName = RETURN_UPDATE_COUNT_PREFIX + (updateIndex + 1); + if (logger.isDebugEnabled()) { + logger.debug("Added default SqlReturnUpdateCount parameter named '" + undeclaredName + "'"); + } + returnedResults.put(undeclaredName, updateCount); updateIndex++; } } @@ -1281,8 +1283,10 @@ public class JdbcTemplate extends JdbcAccessor implements JdbcOperations { else { String rsName = outParam.getName(); SqlReturnResultSet rsParam = new SqlReturnResultSet(rsName, new ColumnMapRowMapper()); - returnedResults.putAll(processResultSet(cs.getResultSet(), rsParam)); - logger.info("Added default SqlReturnResultSet parameter named " + rsName); + returnedResults.putAll(processResultSet((ResultSet) out, rsParam)); + if (logger.isDebugEnabled()) { + logger.debug("Added default SqlReturnResultSet parameter named '" + rsName + "'"); + } } } else { diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/core/metadata/CallMetaDataProvider.java b/spring-jdbc/src/main/java/org/springframework/jdbc/core/metadata/CallMetaDataProvider.java index efb32f75c04..e8ca5fc5415 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/core/metadata/CallMetaDataProvider.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/core/metadata/CallMetaDataProvider.java @@ -24,7 +24,8 @@ import org.springframework.jdbc.core.SqlParameter; /** * Interface specifying the API to be implemented by a class providing call metadata. - * This is intended for internal use by Spring's + * + *

This is intended for internal use by Spring's * {@link org.springframework.jdbc.core.simple.SimpleJdbcCall}. * * @author Thomas Risberg @@ -74,15 +75,15 @@ public interface CallMetaDataProvider { /** * Provide any modification of the catalog name passed in to match the meta data currently used. - * The returned value will be used for meta data lookups. This could include altering the case used - * or providing a base catalog if none is provided. + * The returned value will be used for meta data lookups. This could include altering the case + * used or providing a base catalog if none is provided. */ String metaDataCatalogNameToUse(String catalogName) ; /** * Provide any modification of the schema name passed in to match the meta data currently used. - * The returned value will be used for meta data lookups. This could include altering the case used - * or providing a base schema if none is provided. + * The returned value will be used for meta data lookups. This could include altering the case + * used or providing a base schema if none is provided. */ String metaDataSchemaNameToUse(String schemaName) ; @@ -94,8 +95,8 @@ public interface CallMetaDataProvider { String parameterNameToUse(String parameterName); /** - * Create a default out parameter based on the provided meta data. This is used when no - * explicit parameter declaration has been made. + * Create a default out parameter based on the provided meta data. + * This is used when no explicit parameter declaration has been made. * @param parameterName the name of the parameter * @param meta meta data used for this call * @return the configured SqlOutParameter @@ -103,8 +104,8 @@ public interface CallMetaDataProvider { SqlParameter createDefaultOutParameter(String parameterName, CallParameterMetaData meta); /** - * Create a default inout parameter based on the provided meta data. This is used when no - * explicit parameter declaration has been made. + * Create a default inout parameter based on the provided meta data. + * This is used when no explicit parameter declaration has been made. * @param parameterName the name of the parameter * @param meta meta data used for this call * @return the configured SqlInOutParameter @@ -112,8 +113,8 @@ public interface CallMetaDataProvider { SqlParameter createDefaultInOutParameter(String parameterName, CallParameterMetaData meta); /** - * Create a default in parameter based on the provided meta data. This is used when no - * explicit parameter declaration has been made. + * Create a default in parameter based on the provided meta data. + * This is used when no explicit parameter declaration has been made. * @param parameterName the name of the parameter * @param meta meta data used for this call * @return the configured SqlParameter @@ -121,26 +122,26 @@ public interface CallMetaDataProvider { SqlParameter createDefaultInParameter(String parameterName, CallParameterMetaData meta); /** - * Get the name of the current user. Useful for meta data lookups etc. + * Get the name of the current user. Useful for meta data lookups etc. * @return current user name from database connection */ String getUserName(); /** - * Does this database support returning resultsets that should be retrieved with the JDBC call + * Does this database support returning ResultSets that should be retrieved with the JDBC call. * {@link java.sql.Statement#getResultSet()} */ boolean isReturnResultSetSupported(); /** - * Does this database support returning resultsets as ref cursors to be retrieved with + * Does this database support returning ResultSets as ref cursors to be retrieved with * {@link java.sql.CallableStatement#getObject(int)} for the specified column. */ boolean isRefCursorSupported(); /** - * Get the {@link java.sql.Types} type for columns that return resultsets as ref cursors if this feature - * is supported. + * Get the {@link java.sql.Types} type for columns that return ResultSets as ref cursors + * if this feature is supported. */ int getRefCursorSqlType();