Add @Override annotations to main sources

Issue: SPR-10130
This commit is contained in:
Chris Beams
2012-12-28 14:00:16 +01:00
parent 9c2046c3ee
commit 3b40ce76bf
1256 changed files with 5716 additions and 0 deletions

View File

@@ -26,6 +26,7 @@ import org.springframework.beans.factory.xml.NamespaceHandlerSupport;
*/
public class JdbcNamespaceHandler extends NamespaceHandlerSupport {
@Override
public void init() {
registerBeanDefinitionParser("embedded-database", new EmbeddedDatabaseBeanDefinitionParser());
registerBeanDefinitionParser("initialize-database", new InitializeDatabaseBeanDefinitionParser());

View File

@@ -59,6 +59,7 @@ public class SortedResourcesFactoryBean extends AbstractFactoryBean<Resource[]>
}
@Override
public void setResourceLoader(ResourceLoader resourceLoader) {
this.resourcePatternResolver = ResourcePatternUtils.getResourcePatternResolver(resourceLoader);
}
@@ -76,6 +77,7 @@ public class SortedResourcesFactoryBean extends AbstractFactoryBean<Resource[]>
List<Resource> resources = new ArrayList<Resource>(
Arrays.asList(this.resourcePatternResolver.getResources(location)));
Collections.sort(resources, new Comparator<Resource>() {
@Override
public int compare(Resource r1, Resource r2) {
try {
return r1.getURL().toString().compareTo(r2.getURL().toString());

View File

@@ -39,6 +39,7 @@ class ArgPreparedStatementSetter implements PreparedStatementSetter, ParameterDi
}
@Override
public void setValues(PreparedStatement ps) throws SQLException {
if (this.args != null) {
for (int i = 0; i < this.args.length; i++) {
@@ -66,6 +67,7 @@ class ArgPreparedStatementSetter implements PreparedStatementSetter, ParameterDi
}
}
@Override
public void cleanupParameters() {
StatementCreatorUtils.cleanupParameters(this.args);
}

View File

@@ -52,6 +52,7 @@ class ArgTypePreparedStatementSetter implements PreparedStatementSetter, Paramet
}
@Override
public void setValues(PreparedStatement ps) throws SQLException {
int parameterPosition = 1;
if (this.args != null) {
@@ -97,6 +98,7 @@ class ArgTypePreparedStatementSetter implements PreparedStatementSetter, Paramet
StatementCreatorUtils.setParameterValue(ps, parameterPosition, argType, argValue);
}
@Override
public void cleanupParameters() {
StatementCreatorUtils.cleanupParameters(this.args);
}

View File

@@ -33,11 +33,13 @@ public abstract class BatchUpdateUtils {
sql,
new BatchPreparedStatementSetter() {
@Override
public void setValues(PreparedStatement ps, int i) throws SQLException {
Object[] values = batchValues.get(i);
setStatementParameters(values, ps, columnTypes);
}
@Override
public int getBatchSize() {
return batchValues.size();
}

View File

@@ -228,6 +228,7 @@ public class BeanPropertyRowMapper<T> implements RowMapper<T> {
* <p>Utilizes public setters and result set metadata.
* @see java.sql.ResultSetMetaData
*/
@Override
public T mapRow(ResultSet rs, int rowNumber) throws SQLException {
Assert.state(this.mappedClass != null, "Mapped class was not specified");
T mappedObject = BeanUtils.instantiate(this.mappedClass);

View File

@@ -150,6 +150,7 @@ public class CallableStatementCreatorFactory {
this.inParameters = inParams;
}
@Override
public CallableStatement createCallableStatement(Connection con) throws SQLException {
// If we were given a ParameterMapper, we must let the mapper do its thing to create the Map.
if (this.inParameterMapper != null) {
@@ -218,10 +219,12 @@ public class CallableStatementCreatorFactory {
return cs;
}
@Override
public String getSql() {
return callString;
}
@Override
public void cleanupParameters() {
if (this.inParameters != null) {
StatementCreatorUtils.cleanupParameters(this.inParameters.values());

View File

@@ -47,6 +47,7 @@ import org.springframework.util.LinkedCaseInsensitiveMap;
*/
public class ColumnMapRowMapper implements RowMapper<Map<String, Object>> {
@Override
public Map<String, Object> mapRow(ResultSet rs, int rowNum) throws SQLException {
ResultSetMetaData rsmd = rs.getMetaData();
int columnCount = rsmd.getColumnCount();

View File

@@ -325,6 +325,7 @@ public class JdbcTemplate extends JdbcAccessor implements JdbcOperations {
// Methods dealing with a plain java.sql.Connection
//-------------------------------------------------------------------------
@Override
public <T> T execute(ConnectionCallback<T> action) throws DataAccessException {
Assert.notNull(action, "Callback object must not be null");
@@ -376,6 +377,7 @@ public class JdbcTemplate extends JdbcAccessor implements JdbcOperations {
// Methods dealing with static SQL (java.sql.Statement)
//-------------------------------------------------------------------------
@Override
public <T> T execute(StatementCallback<T> action) throws DataAccessException {
Assert.notNull(action, "Callback object must not be null");
@@ -412,15 +414,18 @@ public class JdbcTemplate extends JdbcAccessor implements JdbcOperations {
}
}
@Override
public void execute(final String sql) throws DataAccessException {
if (logger.isDebugEnabled()) {
logger.debug("Executing SQL statement [" + sql + "]");
}
class ExecuteStatementCallback implements StatementCallback<Object>, SqlProvider {
@Override
public Object doInStatement(Statement stmt) throws SQLException {
stmt.execute(sql);
return null;
}
@Override
public String getSql() {
return sql;
}
@@ -428,6 +433,7 @@ public class JdbcTemplate extends JdbcAccessor implements JdbcOperations {
execute(new ExecuteStatementCallback());
}
@Override
public <T> T query(final String sql, final ResultSetExtractor<T> rse) throws DataAccessException {
Assert.notNull(sql, "SQL must not be null");
Assert.notNull(rse, "ResultSetExtractor must not be null");
@@ -435,6 +441,7 @@ public class JdbcTemplate extends JdbcAccessor implements JdbcOperations {
logger.debug("Executing SQL query [" + sql + "]");
}
class QueryStatementCallback implements StatementCallback<T>, SqlProvider {
@Override
public T doInStatement(Statement stmt) throws SQLException {
ResultSet rs = null;
try {
@@ -449,6 +456,7 @@ public class JdbcTemplate extends JdbcAccessor implements JdbcOperations {
JdbcUtils.closeResultSet(rs);
}
}
@Override
public String getSql() {
return sql;
}
@@ -456,55 +464,67 @@ public class JdbcTemplate extends JdbcAccessor implements JdbcOperations {
return execute(new QueryStatementCallback());
}
@Override
public void query(String sql, RowCallbackHandler rch) throws DataAccessException {
query(sql, new RowCallbackHandlerResultSetExtractor(rch));
}
@Override
public <T> List<T> query(String sql, RowMapper<T> rowMapper) throws DataAccessException {
return query(sql, new RowMapperResultSetExtractor<T>(rowMapper));
}
@Override
public Map<String, Object> queryForMap(String sql) throws DataAccessException {
return queryForObject(sql, getColumnMapRowMapper());
}
@Override
public <T> T queryForObject(String sql, RowMapper<T> rowMapper) throws DataAccessException {
List<T> results = query(sql, rowMapper);
return DataAccessUtils.requiredSingleResult(results);
}
@Override
public <T> T queryForObject(String sql, Class<T> requiredType) throws DataAccessException {
return queryForObject(sql, getSingleColumnRowMapper(requiredType));
}
@Override
public long queryForLong(String sql) throws DataAccessException {
Number number = queryForObject(sql, Long.class);
return (number != null ? number.longValue() : 0);
}
@Override
public int queryForInt(String sql) throws DataAccessException {
Number number = queryForObject(sql, Integer.class);
return (number != null ? number.intValue() : 0);
}
@Override
public <T> List<T> queryForList(String sql, Class<T> elementType) throws DataAccessException {
return query(sql, getSingleColumnRowMapper(elementType));
}
@Override
public List<Map<String, Object>> queryForList(String sql) throws DataAccessException {
return query(sql, getColumnMapRowMapper());
}
@Override
public SqlRowSet queryForRowSet(String sql) throws DataAccessException {
return query(sql, new SqlRowSetResultSetExtractor());
}
@Override
public int update(final String sql) throws DataAccessException {
Assert.notNull(sql, "SQL must not be null");
if (logger.isDebugEnabled()) {
logger.debug("Executing SQL update [" + sql + "]");
}
class UpdateStatementCallback implements StatementCallback<Integer>, SqlProvider {
@Override
public Integer doInStatement(Statement stmt) throws SQLException {
int rows = stmt.executeUpdate(sql);
if (logger.isDebugEnabled()) {
@@ -512,6 +532,7 @@ public class JdbcTemplate extends JdbcAccessor implements JdbcOperations {
}
return rows;
}
@Override
public String getSql() {
return sql;
}
@@ -519,6 +540,7 @@ public class JdbcTemplate extends JdbcAccessor implements JdbcOperations {
return execute(new UpdateStatementCallback());
}
@Override
public int[] batchUpdate(final String[] sql) throws DataAccessException {
Assert.notEmpty(sql, "SQL array must not be empty");
if (logger.isDebugEnabled()) {
@@ -526,6 +548,7 @@ public class JdbcTemplate extends JdbcAccessor implements JdbcOperations {
}
class BatchUpdateStatementCallback implements StatementCallback<int[]>, SqlProvider {
private String currSql;
@Override
public int[] doInStatement(Statement stmt) throws SQLException, DataAccessException {
int[] rowsAffected = new int[sql.length];
if (JdbcUtils.supportsBatchUpdates(stmt.getConnection())) {
@@ -548,6 +571,7 @@ public class JdbcTemplate extends JdbcAccessor implements JdbcOperations {
}
return rowsAffected;
}
@Override
public String getSql() {
return this.currSql;
}
@@ -560,6 +584,7 @@ public class JdbcTemplate extends JdbcAccessor implements JdbcOperations {
// Methods dealing with prepared statements
//-------------------------------------------------------------------------
@Override
public <T> T execute(PreparedStatementCreator psc, PreparedStatementCallback<T> action)
throws DataAccessException {
@@ -611,6 +636,7 @@ public class JdbcTemplate extends JdbcAccessor implements JdbcOperations {
}
}
@Override
public <T> T execute(String sql, PreparedStatementCallback<T> action) throws DataAccessException {
return execute(new SimplePreparedStatementCreator(sql), action);
}
@@ -635,6 +661,7 @@ public class JdbcTemplate extends JdbcAccessor implements JdbcOperations {
logger.debug("Executing prepared SQL query");
return execute(psc, new PreparedStatementCallback<T>() {
@Override
public T doInPreparedStatement(PreparedStatement ps) throws SQLException {
ResultSet rs = null;
try {
@@ -658,66 +685,82 @@ public class JdbcTemplate extends JdbcAccessor implements JdbcOperations {
});
}
@Override
public <T> T query(PreparedStatementCreator psc, ResultSetExtractor<T> rse) throws DataAccessException {
return query(psc, null, rse);
}
@Override
public <T> T query(String sql, PreparedStatementSetter pss, ResultSetExtractor<T> rse) throws DataAccessException {
return query(new SimplePreparedStatementCreator(sql), pss, rse);
}
@Override
public <T> T query(String sql, Object[] args, int[] argTypes, ResultSetExtractor<T> rse) throws DataAccessException {
return query(sql, newArgTypePreparedStatementSetter(args, argTypes), rse);
}
@Override
public <T> T query(String sql, Object[] args, ResultSetExtractor<T> rse) throws DataAccessException {
return query(sql, newArgPreparedStatementSetter(args), rse);
}
@Override
public <T> T query(String sql, ResultSetExtractor<T> rse, Object... args) throws DataAccessException {
return query(sql, newArgPreparedStatementSetter(args), rse);
}
@Override
public void query(PreparedStatementCreator psc, RowCallbackHandler rch) throws DataAccessException {
query(psc, new RowCallbackHandlerResultSetExtractor(rch));
}
@Override
public void query(String sql, PreparedStatementSetter pss, RowCallbackHandler rch) throws DataAccessException {
query(sql, pss, new RowCallbackHandlerResultSetExtractor(rch));
}
@Override
public void query(String sql, Object[] args, int[] argTypes, RowCallbackHandler rch) throws DataAccessException {
query(sql, newArgTypePreparedStatementSetter(args, argTypes), rch);
}
@Override
public void query(String sql, Object[] args, RowCallbackHandler rch) throws DataAccessException {
query(sql, newArgPreparedStatementSetter(args), rch);
}
@Override
public void query(String sql, RowCallbackHandler rch, Object... args) throws DataAccessException {
query(sql, newArgPreparedStatementSetter(args), rch);
}
@Override
public <T> List<T> query(PreparedStatementCreator psc, RowMapper<T> rowMapper) throws DataAccessException {
return query(psc, new RowMapperResultSetExtractor<T>(rowMapper));
}
@Override
public <T> List<T> query(String sql, PreparedStatementSetter pss, RowMapper<T> rowMapper) throws DataAccessException {
return query(sql, pss, new RowMapperResultSetExtractor<T>(rowMapper));
}
@Override
public <T> List<T> query(String sql, Object[] args, int[] argTypes, RowMapper<T> rowMapper) throws DataAccessException {
return query(sql, args, argTypes, new RowMapperResultSetExtractor<T>(rowMapper));
}
@Override
public <T> List<T> query(String sql, Object[] args, RowMapper<T> rowMapper) throws DataAccessException {
return query(sql, args, new RowMapperResultSetExtractor<T>(rowMapper));
}
@Override
public <T> List<T> query(String sql, RowMapper<T> rowMapper, Object... args) throws DataAccessException {
return query(sql, args, new RowMapperResultSetExtractor<T>(rowMapper));
}
@Override
public <T> T queryForObject(String sql, Object[] args, int[] argTypes, RowMapper<T> rowMapper)
throws DataAccessException {
@@ -725,82 +768,100 @@ public class JdbcTemplate extends JdbcAccessor implements JdbcOperations {
return DataAccessUtils.requiredSingleResult(results);
}
@Override
public <T> T queryForObject(String sql, Object[] args, RowMapper<T> rowMapper) throws DataAccessException {
List<T> results = query(sql, args, new RowMapperResultSetExtractor<T>(rowMapper, 1));
return DataAccessUtils.requiredSingleResult(results);
}
@Override
public <T> T queryForObject(String sql, RowMapper<T> rowMapper, Object... args) throws DataAccessException {
List<T> results = query(sql, args, new RowMapperResultSetExtractor<T>(rowMapper, 1));
return DataAccessUtils.requiredSingleResult(results);
}
@Override
public <T> T queryForObject(String sql, Object[] args, int[] argTypes, Class<T> requiredType)
throws DataAccessException {
return queryForObject(sql, args, argTypes, getSingleColumnRowMapper(requiredType));
}
@Override
public <T> T queryForObject(String sql, Object[] args, Class<T> requiredType) throws DataAccessException {
return queryForObject(sql, args, getSingleColumnRowMapper(requiredType));
}
@Override
public <T> T queryForObject(String sql, Class<T> requiredType, Object... args) throws DataAccessException {
return queryForObject(sql, args, getSingleColumnRowMapper(requiredType));
}
@Override
public Map<String, Object> queryForMap(String sql, Object[] args, int[] argTypes) throws DataAccessException {
return queryForObject(sql, args, argTypes, getColumnMapRowMapper());
}
@Override
public Map<String, Object> queryForMap(String sql, Object... args) throws DataAccessException {
return queryForObject(sql, args, getColumnMapRowMapper());
}
@Override
public long queryForLong(String sql, Object[] args, int[] argTypes) throws DataAccessException {
Number number = queryForObject(sql, args, argTypes, Long.class);
return (number != null ? number.longValue() : 0);
}
@Override
public long queryForLong(String sql, Object... args) throws DataAccessException {
Number number = queryForObject(sql, args, Long.class);
return (number != null ? number.longValue() : 0);
}
@Override
public int queryForInt(String sql, Object[] args, int[] argTypes) throws DataAccessException {
Number number = queryForObject(sql, args, argTypes, Integer.class);
return (number != null ? number.intValue() : 0);
}
@Override
public int queryForInt(String sql, Object... args) throws DataAccessException {
Number number = queryForObject(sql, args, Integer.class);
return (number != null ? number.intValue() : 0);
}
@Override
public <T> List<T> queryForList(String sql, Object[] args, int[] argTypes, Class<T> elementType) throws DataAccessException {
return query(sql, args, argTypes, getSingleColumnRowMapper(elementType));
}
@Override
public <T> List<T> queryForList(String sql, Object[] args, Class<T> elementType) throws DataAccessException {
return query(sql, args, getSingleColumnRowMapper(elementType));
}
@Override
public <T> List<T> queryForList(String sql, Class<T> elementType, Object... args) throws DataAccessException {
return query(sql, args, getSingleColumnRowMapper(elementType));
}
@Override
public List<Map<String, Object>> queryForList(String sql, Object[] args, int[] argTypes) throws DataAccessException {
return query(sql, args, argTypes, getColumnMapRowMapper());
}
@Override
public List<Map<String, Object>> queryForList(String sql, Object... args) throws DataAccessException {
return query(sql, args, getColumnMapRowMapper());
}
@Override
public SqlRowSet queryForRowSet(String sql, Object[] args, int[] argTypes) throws DataAccessException {
return query(sql, args, argTypes, new SqlRowSetResultSetExtractor());
}
@Override
public SqlRowSet queryForRowSet(String sql, Object... args) throws DataAccessException {
return query(sql, args, new SqlRowSetResultSetExtractor());
}
@@ -810,6 +871,7 @@ public class JdbcTemplate extends JdbcAccessor implements JdbcOperations {
logger.debug("Executing prepared SQL update");
return execute(psc, new PreparedStatementCallback<Integer>() {
@Override
public Integer doInPreparedStatement(PreparedStatement ps) throws SQLException {
try {
if (pss != null) {
@@ -830,10 +892,12 @@ public class JdbcTemplate extends JdbcAccessor implements JdbcOperations {
});
}
@Override
public int update(PreparedStatementCreator psc) throws DataAccessException {
return update(psc, (PreparedStatementSetter) null);
}
@Override
public int update(final PreparedStatementCreator psc, final KeyHolder generatedKeyHolder)
throws DataAccessException {
@@ -841,6 +905,7 @@ public class JdbcTemplate extends JdbcAccessor implements JdbcOperations {
logger.debug("Executing SQL update and returning generated keys");
return execute(psc, new PreparedStatementCallback<Integer>() {
@Override
public Integer doInPreparedStatement(PreparedStatement ps) throws SQLException {
int rows = ps.executeUpdate();
List<Map<String, Object>> generatedKeys = generatedKeyHolder.getKeyList();
@@ -864,24 +929,29 @@ public class JdbcTemplate extends JdbcAccessor implements JdbcOperations {
});
}
@Override
public int update(String sql, PreparedStatementSetter pss) throws DataAccessException {
return update(new SimplePreparedStatementCreator(sql), pss);
}
@Override
public int update(String sql, Object[] args, int[] argTypes) throws DataAccessException {
return update(sql, newArgTypePreparedStatementSetter(args, argTypes));
}
@Override
public int update(String sql, Object... args) throws DataAccessException {
return update(sql, newArgPreparedStatementSetter(args));
}
@Override
public int[] batchUpdate(String sql, final BatchPreparedStatementSetter pss) throws DataAccessException {
if (logger.isDebugEnabled()) {
logger.debug("Executing SQL batch update [" + sql + "]");
}
return execute(sql, new PreparedStatementCallback<int[]>() {
@Override
public int[] doInPreparedStatement(PreparedStatement ps) throws SQLException {
try {
int batchSize = pss.getBatchSize();
@@ -923,10 +993,12 @@ public class JdbcTemplate extends JdbcAccessor implements JdbcOperations {
});
}
@Override
public int[] batchUpdate(String sql, List<Object[]> batchArgs) {
return batchUpdate(sql, batchArgs, new int[0]);
}
@Override
public int[] batchUpdate(String sql, List<Object[]> batchArgs, int[] argTypes) {
return BatchUpdateUtils.executeBatchUpdate(sql, batchArgs, argTypes, this);
}
@@ -937,11 +1009,13 @@ public class JdbcTemplate extends JdbcAccessor implements JdbcOperations {
*
* Contribution by Nicolas Fabre
*/
@Override
public <T> int[][] batchUpdate(String sql, final Collection<T> batchArgs, final int batchSize, final ParameterizedPreparedStatementSetter<T> pss) {
if (logger.isDebugEnabled()) {
logger.debug("Executing SQL batch update [" + sql + "] with a batch size of " + batchSize);
}
return execute(sql, new PreparedStatementCallback<int[][]>() {
@Override
public int[][] doInPreparedStatement(PreparedStatement ps) throws SQLException {
List<int[]> rowsAffected = new ArrayList<int[]>();
try {
@@ -988,6 +1062,7 @@ public class JdbcTemplate extends JdbcAccessor implements JdbcOperations {
// Methods dealing with callable statements
//-------------------------------------------------------------------------
@Override
public <T> T execute(CallableStatementCreator csc, CallableStatementCallback<T> action)
throws DataAccessException {
@@ -1038,10 +1113,12 @@ public class JdbcTemplate extends JdbcAccessor implements JdbcOperations {
}
}
@Override
public <T> T execute(String callString, CallableStatementCallback<T> action) throws DataAccessException {
return execute(new SimpleCallableStatementCreator(callString), action);
}
@Override
public Map<String, Object> call(CallableStatementCreator csc, List<SqlParameter> declaredParameters)
throws DataAccessException {
@@ -1062,6 +1139,7 @@ public class JdbcTemplate extends JdbcAccessor implements JdbcOperations {
}
}
return execute(csc, new CallableStatementCallback<Map<String, Object>>() {
@Override
public Map<String, Object> doInCallableStatement(CallableStatement cs) throws SQLException {
boolean retVal = cs.execute();
int updateCount = cs.getUpdateCount();
@@ -1369,6 +1447,7 @@ public class JdbcTemplate extends JdbcAccessor implements JdbcOperations {
this.target = target;
}
@Override
@SuppressWarnings("rawtypes")
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
// Invocation on ConnectionProxy interface coming in...
@@ -1434,10 +1513,12 @@ public class JdbcTemplate extends JdbcAccessor implements JdbcOperations {
this.sql = sql;
}
@Override
public PreparedStatement createPreparedStatement(Connection con) throws SQLException {
return con.prepareStatement(this.sql);
}
@Override
public String getSql() {
return this.sql;
}
@@ -1456,10 +1537,12 @@ public class JdbcTemplate extends JdbcAccessor implements JdbcOperations {
this.callString = callString;
}
@Override
public CallableStatement createCallableStatement(Connection con) throws SQLException {
return con.prepareCall(this.callString);
}
@Override
public String getSql() {
return this.callString;
}
@@ -1479,6 +1562,7 @@ public class JdbcTemplate extends JdbcAccessor implements JdbcOperations {
this.rch = rch;
}
@Override
public Object extractData(ResultSet rs) throws SQLException {
while (rs.next()) {
this.rch.processRow(rs);

View File

@@ -224,6 +224,7 @@ public class PreparedStatementCreatorFactory {
}
}
@Override
public PreparedStatement createPreparedStatement(Connection con) throws SQLException {
PreparedStatement ps = null;
if (generatedKeysColumnNames != null || returnGeneratedKeys) {
@@ -252,6 +253,7 @@ public class PreparedStatementCreatorFactory {
return ps;
}
@Override
public void setValues(PreparedStatement ps) throws SQLException {
// Determine PreparedStatement to pass to custom types.
PreparedStatement psToUse = ps;
@@ -300,10 +302,12 @@ public class PreparedStatementCreatorFactory {
}
}
@Override
public String getSql() {
return sql;
}
@Override
public void cleanupParameters() {
StatementCreatorUtils.cleanupParameters(this.parameters);
}

View File

@@ -69,6 +69,7 @@ public class RowCountCallbackHandler implements RowCallbackHandler {
* by overriding the {@code processRow(ResultSet, int)} method.
* @see #processRow(java.sql.ResultSet, int)
*/
@Override
public final void processRow(ResultSet rs) throws SQLException {
if (this.rowCount == 0) {
ResultSetMetaData rsmd = rs.getMetaData();

View File

@@ -85,6 +85,7 @@ public class RowMapperResultSetExtractor<T> implements ResultSetExtractor<List<T
}
@Override
public List<T> extractData(ResultSet rs) throws SQLException {
List<T> results = (this.rowsExpected > 0 ? new ArrayList<T>(this.rowsExpected) : new ArrayList<T>());
int rowNum = 0;

View File

@@ -78,6 +78,7 @@ public class SingleColumnRowMapper<T> implements RowMapper<T> {
* @see #getColumnValue(java.sql.ResultSet, int, Class)
* @see #convertValueToRequiredType(Object, Class)
*/
@Override
@SuppressWarnings("unchecked")
public T mapRow(ResultSet rs, int rowNum) throws SQLException {
// Validate column count.

View File

@@ -58,6 +58,7 @@ public class SqlRowSetResultSetExtractor implements ResultSetExtractor<SqlRowSet
}
@Override
public SqlRowSet extractData(ResultSet rs) throws SQLException {
return createSqlRowSet(rs);
}
@@ -120,6 +121,7 @@ public class SqlRowSetResultSetExtractor implements ResultSetExtractor<SqlRowSet
}
}
@Override
public CachedRowSet createCachedRowSet() throws SQLException {
return this.rowSetFactory.createCachedRowSet();
}
@@ -131,6 +133,7 @@ public class SqlRowSetResultSetExtractor implements ResultSetExtractor<SqlRowSet
*/
private static class SunCachedRowSetFactory implements CachedRowSetFactory {
@Override
public CachedRowSet createCachedRowSet() throws SQLException {
return new com.sun.rowset.CachedRowSetImpl();
}

View File

@@ -69,6 +69,7 @@ public class CallMetaDataProviderFactory {
static public CallMetaDataProvider createMetaDataProvider(DataSource dataSource, final CallMetaDataContext context) {
try {
return (CallMetaDataProvider) JdbcUtils.extractDatabaseMetaData(dataSource, new DatabaseMetaDataCallback() {
@Override
public Object processMetaData(DatabaseMetaData databaseMetaData) throws SQLException, MetaDataAccessException {
String databaseProductName = JdbcUtils.commonDatabaseName(databaseMetaData.getDatabaseProductName());
boolean accessProcedureColumnMetaData = context.isAccessCallParameterMetaData();

View File

@@ -68,6 +68,7 @@ public class GenericCallMetaDataProvider implements CallMetaDataProvider {
}
@Override
public void initializeWithMetaData(DatabaseMetaData databaseMetaData) throws SQLException {
try {
setSupportsCatalogsInProcedureCalls(databaseMetaData.supportsCatalogsInProcedureCalls());
@@ -95,6 +96,7 @@ public class GenericCallMetaDataProvider implements CallMetaDataProvider {
}
}
@Override
public void initializeWithProcedureColumnMetaData(DatabaseMetaData databaseMetaData, String catalogName,
String schemaName, String procedureName) throws SQLException {
@@ -102,10 +104,12 @@ public class GenericCallMetaDataProvider implements CallMetaDataProvider {
processProcedureColumns(databaseMetaData, catalogName, schemaName, procedureName);
}
@Override
public List<CallParameterMetaData> getCallParameterMetaData() {
return this.callParameterMetaData;
}
@Override
public String procedureNameToUse(String procedureName) {
if (procedureName == null) {
return null;
@@ -121,6 +125,7 @@ public class GenericCallMetaDataProvider implements CallMetaDataProvider {
}
}
@Override
public String catalogNameToUse(String catalogName) {
if (catalogName == null) {
return null;
@@ -136,6 +141,7 @@ public class GenericCallMetaDataProvider implements CallMetaDataProvider {
}
}
@Override
public String schemaNameToUse(String schemaName) {
if (schemaName == null) {
return null;
@@ -151,6 +157,7 @@ public class GenericCallMetaDataProvider implements CallMetaDataProvider {
}
}
@Override
public String metaDataCatalogNameToUse(String catalogName) {
if (isSupportsCatalogsInProcedureCalls()) {
return catalogNameToUse(catalogName);
@@ -160,6 +167,7 @@ public class GenericCallMetaDataProvider implements CallMetaDataProvider {
}
}
@Override
public String metaDataSchemaNameToUse(String schemaName) {
if (isSupportsSchemasInProcedureCalls()) {
return schemaNameToUse(schemaName);
@@ -169,6 +177,7 @@ public class GenericCallMetaDataProvider implements CallMetaDataProvider {
}
}
@Override
public String parameterNameToUse(String parameterName) {
if (parameterName == null) {
return null;
@@ -184,38 +193,47 @@ public class GenericCallMetaDataProvider implements CallMetaDataProvider {
}
}
@Override
public boolean byPassReturnParameter(String parameterName) {
return false;
}
@Override
public SqlParameter createDefaultOutParameter(String parameterName, CallParameterMetaData meta) {
return new SqlOutParameter(parameterName, meta.getSqlType());
}
@Override
public SqlParameter createDefaultInOutParameter(String parameterName, CallParameterMetaData meta) {
return new SqlInOutParameter(parameterName, meta.getSqlType());
}
@Override
public SqlParameter createDefaultInParameter(String parameterName, CallParameterMetaData meta) {
return new SqlParameter(parameterName, meta.getSqlType());
}
@Override
public String getUserName() {
return this.userName;
}
@Override
public boolean isReturnResultSetSupported() {
return true;
}
@Override
public boolean isRefCursorSupported() {
return false;
}
@Override
public int getRefCursorSqlType() {
return Types.OTHER;
}
@Override
public boolean isProcedureColumnMetaDataUsed() {
return this.procedureColumnMetaDataUsed;
}
@@ -231,6 +249,7 @@ public class GenericCallMetaDataProvider implements CallMetaDataProvider {
/**
* Does the database support the use of catalog name in procedure calls
*/
@Override
public boolean isSupportsCatalogsInProcedureCalls() {
return this.supportsCatalogsInProcedureCalls;
}
@@ -245,6 +264,7 @@ public class GenericCallMetaDataProvider implements CallMetaDataProvider {
/**
* Does the database support the use of schema name in procedure calls
*/
@Override
public boolean isSupportsSchemasInProcedureCalls() {
return this.supportsSchemasInProcedureCalls;
}

View File

@@ -113,22 +113,27 @@ public class GenericTableMetaDataProvider implements TableMetaDataProvider {
return this.storesLowerCaseIdentifiers;
}
@Override
public boolean isTableColumnMetaDataUsed() {
return this.tableColumnMetaDataUsed;
}
@Override
public List<TableParameterMetaData> getTableParameterMetaData() {
return this.insertParameterMetaData;
}
@Override
public boolean isGetGeneratedKeysSupported() {
return this.getGeneratedKeysSupported;
}
@Override
public boolean isGetGeneratedKeysSimulated(){
return false;
}
@Override
public String getSimpleQueryForGetGeneratedKey(String tableName, String keyColumnName) {
return null;
}
@@ -147,10 +152,12 @@ public class GenericTableMetaDataProvider implements TableMetaDataProvider {
this.generatedKeysColumnNameArraySupported = generatedKeysColumnNameArraySupported;
}
@Override
public boolean isGeneratedKeysColumnNameArraySupported() {
return this.generatedKeysColumnNameArraySupported;
}
@Override
public void setNativeJdbcExtractor(NativeJdbcExtractor nativeJdbcExtractor) {
this.nativeJdbcExtractor = nativeJdbcExtractor;
}
@@ -160,6 +167,7 @@ public class GenericTableMetaDataProvider implements TableMetaDataProvider {
}
@Override
public void initializeWithMetaData(DatabaseMetaData databaseMetaData) throws SQLException {
try {
if (databaseMetaData.supportsGetGeneratedKeys()) {
@@ -214,6 +222,7 @@ public class GenericTableMetaDataProvider implements TableMetaDataProvider {
}
@Override
public void initializeWithTableColumnMetaData(DatabaseMetaData databaseMetaData, String catalogName,
String schemaName, String tableName) throws SQLException {
@@ -221,6 +230,7 @@ public class GenericTableMetaDataProvider implements TableMetaDataProvider {
locateTableAndProcessMetaData(databaseMetaData, catalogName, schemaName, tableName);
}
@Override
public String tableNameToUse(String tableName) {
if (tableName == null) {
return null;
@@ -236,6 +246,7 @@ public class GenericTableMetaDataProvider implements TableMetaDataProvider {
}
}
@Override
public String catalogNameToUse(String catalogName) {
if (catalogName == null) {
return null;
@@ -251,6 +262,7 @@ public class GenericTableMetaDataProvider implements TableMetaDataProvider {
}
}
@Override
public String schemaNameToUse(String schemaName) {
if (schemaName == null) {
return null;
@@ -266,10 +278,12 @@ public class GenericTableMetaDataProvider implements TableMetaDataProvider {
}
}
@Override
public String metaDataCatalogNameToUse(String catalogName) {
return catalogNameToUse(catalogName);
}
@Override
public String metaDataSchemaNameToUse(String schemaName) {
if (schemaName == null) {
return schemaNameToUse(getDefaultSchema());

View File

@@ -62,6 +62,7 @@ public class TableMetaDataProviderFactory {
try {
return (TableMetaDataProvider) JdbcUtils.extractDatabaseMetaData(dataSource,
new DatabaseMetaDataCallback() {
@Override
public Object processMetaData(DatabaseMetaData databaseMetaData) throws SQLException {
String databaseProductName =
JdbcUtils.commonDatabaseName(databaseMetaData.getDatabaseProductName());

View File

@@ -61,6 +61,7 @@ public abstract class AbstractSqlParameterSource implements SqlParameterSource {
* @return the SQL type of the parameter,
* or {@code TYPE_UNKNOWN} if not registered
*/
@Override
public int getSqlType(String paramName) {
Assert.notNull(paramName, "Parameter name must not be null");
Integer sqlType = this.sqlTypes.get(paramName);
@@ -76,6 +77,7 @@ public abstract class AbstractSqlParameterSource implements SqlParameterSource {
* @return the type name of the parameter,
* or {@code null} if not registered
*/
@Override
public String getTypeName(String paramName) {
Assert.notNull(paramName, "Parameter name must not be null");
return this.typeNames.get(paramName);

View File

@@ -55,10 +55,12 @@ public class BeanPropertySqlParameterSource extends AbstractSqlParameterSource {
}
@Override
public boolean hasValue(String paramName) {
return this.beanWrapper.isReadableProperty(paramName);
}
@Override
public Object getValue(String paramName) throws IllegalArgumentException {
try {
return this.beanWrapper.getPropertyValue(paramName);

View File

@@ -149,10 +149,12 @@ public class MapSqlParameterSource extends AbstractSqlParameterSource {
}
@Override
public boolean hasValue(String paramName) {
return this.values.containsKey(paramName);
}
@Override
public Object getValue(String paramName) {
if (!hasValue(paramName)) {
throw new IllegalArgumentException("No value registered for key '" + paramName + "'");

View File

@@ -41,12 +41,14 @@ public class NamedParameterBatchUpdateUtils extends BatchUpdateUtils {
sqlToUse,
new BatchPreparedStatementSetter() {
@Override
public void setValues(PreparedStatement ps, int i) throws SQLException {
Object[] values = NamedParameterUtils.buildValueArray(parsedSql, batchArgs[i], null);
int[] columnTypes = NamedParameterUtils.buildSqlTypeArray(parsedSql, batchArgs[i]);
setStatementParameters(values, ps, columnTypes);
}
@Override
public int getBatchSize() {
return batchArgs.length;
}

View File

@@ -105,6 +105,7 @@ public class NamedParameterJdbcTemplate implements NamedParameterJdbcOperations
* Expose the classic Spring JdbcTemplate to allow invocation of
* less commonly used methods.
*/
@Override
public JdbcOperations getJdbcOperations() {
return this.classicJdbcTemplate;
}
@@ -125,54 +126,63 @@ public class NamedParameterJdbcTemplate implements NamedParameterJdbcOperations
}
@Override
public <T> T execute(String sql, SqlParameterSource paramSource, PreparedStatementCallback<T> action)
throws DataAccessException {
return getJdbcOperations().execute(getPreparedStatementCreator(sql, paramSource), action);
}
@Override
public <T> T execute(String sql, Map<String, ?> paramMap, PreparedStatementCallback<T> action)
throws DataAccessException {
return execute(sql, new MapSqlParameterSource(paramMap), action);
}
@Override
public <T> T query(String sql, SqlParameterSource paramSource, ResultSetExtractor<T> rse)
throws DataAccessException {
return getJdbcOperations().query(getPreparedStatementCreator(sql, paramSource), rse);
}
@Override
public <T> T query(String sql, Map<String, ?> paramMap, ResultSetExtractor<T> rse)
throws DataAccessException {
return query(sql, new MapSqlParameterSource(paramMap), rse);
}
@Override
public void query(String sql, SqlParameterSource paramSource, RowCallbackHandler rch)
throws DataAccessException {
getJdbcOperations().query(getPreparedStatementCreator(sql, paramSource), rch);
}
@Override
public void query(String sql, Map<String, ?> paramMap, RowCallbackHandler rch)
throws DataAccessException {
query(sql, new MapSqlParameterSource(paramMap), rch);
}
@Override
public <T> List<T> query(String sql, SqlParameterSource paramSource, RowMapper<T> rowMapper)
throws DataAccessException {
return getJdbcOperations().query(getPreparedStatementCreator(sql, paramSource), rowMapper);
}
@Override
public <T> List<T> query(String sql, Map<String, ?> paramMap, RowMapper<T> rowMapper)
throws DataAccessException {
return query(sql, new MapSqlParameterSource(paramMap), rowMapper);
}
@Override
public <T> T queryForObject(String sql, SqlParameterSource paramSource, RowMapper<T> rowMapper)
throws DataAccessException {
@@ -180,97 +190,116 @@ public class NamedParameterJdbcTemplate implements NamedParameterJdbcOperations
return DataAccessUtils.requiredSingleResult(results);
}
@Override
public <T> T queryForObject(String sql, Map<String, ?> paramMap, RowMapper<T>rowMapper)
throws DataAccessException {
return queryForObject(sql, new MapSqlParameterSource(paramMap), rowMapper);
}
@Override
public <T> T queryForObject(String sql, SqlParameterSource paramSource, Class<T> requiredType)
throws DataAccessException {
return queryForObject(sql, paramSource, new SingleColumnRowMapper<T>(requiredType));
}
@Override
public <T> T queryForObject(String sql, Map<String, ?> paramMap, Class<T> requiredType)
throws DataAccessException {
return queryForObject(sql, paramMap, new SingleColumnRowMapper<T>(requiredType));
}
@Override
public Map<String, Object> queryForMap(String sql, SqlParameterSource paramSource) throws DataAccessException {
return queryForObject(sql, paramSource, new ColumnMapRowMapper());
}
@Override
public Map<String, Object> queryForMap(String sql, Map<String, ?> paramMap) throws DataAccessException {
return queryForObject(sql, paramMap, new ColumnMapRowMapper());
}
@Override
public long queryForLong(String sql, SqlParameterSource paramSource) throws DataAccessException {
Number number = queryForObject(sql, paramSource, Long.class);
return (number != null ? number.longValue() : 0);
}
@Override
public long queryForLong(String sql, Map<String, ?> paramMap) throws DataAccessException {
return queryForLong(sql, new MapSqlParameterSource(paramMap));
}
@Override
public int queryForInt(String sql, SqlParameterSource paramSource) throws DataAccessException {
Number number = queryForObject(sql, paramSource, Integer.class);
return (number != null ? number.intValue() : 0);
}
@Override
public int queryForInt(String sql, Map<String, ?> paramMap) throws DataAccessException {
return queryForInt(sql, new MapSqlParameterSource(paramMap));
}
@Override
public <T> List<T> queryForList(String sql, SqlParameterSource paramSource, Class<T> elementType)
throws DataAccessException {
return query(sql, paramSource, new SingleColumnRowMapper<T>(elementType));
}
@Override
public <T> List<T> queryForList(String sql, Map<String, ?> paramMap, Class<T> elementType)
throws DataAccessException {
return queryForList(sql, new MapSqlParameterSource(paramMap), elementType);
}
@Override
public List<Map<String, Object>> queryForList(String sql, SqlParameterSource paramSource)
throws DataAccessException {
return query(sql, paramSource, new ColumnMapRowMapper());
}
@Override
public List<Map<String, Object>> queryForList(String sql, Map<String, ?> paramMap)
throws DataAccessException {
return queryForList(sql, new MapSqlParameterSource(paramMap));
}
@Override
public SqlRowSet queryForRowSet(String sql, SqlParameterSource paramSource) throws DataAccessException {
return getJdbcOperations().query(
getPreparedStatementCreator(sql, paramSource), new SqlRowSetResultSetExtractor());
}
@Override
public SqlRowSet queryForRowSet(String sql, Map<String, ?> paramMap) throws DataAccessException {
return queryForRowSet(sql, new MapSqlParameterSource(paramMap));
}
@Override
public int update(String sql, SqlParameterSource paramSource) throws DataAccessException {
return getJdbcOperations().update(getPreparedStatementCreator(sql, paramSource));
}
@Override
public int update(String sql, Map<String, ?> paramMap) throws DataAccessException {
return update(sql, new MapSqlParameterSource(paramMap));
}
@Override
public int update(String sql, SqlParameterSource paramSource, KeyHolder generatedKeyHolder)
throws DataAccessException {
return update(sql, paramSource, generatedKeyHolder, null);
}
@Override
public int update(
String sql, SqlParameterSource paramSource, KeyHolder generatedKeyHolder, String[] keyColumnNames)
throws DataAccessException {
@@ -289,6 +318,7 @@ public class NamedParameterJdbcTemplate implements NamedParameterJdbcOperations
return getJdbcOperations().update(pscf.newPreparedStatementCreator(params), generatedKeyHolder);
}
@Override
public int[] batchUpdate(String sql, Map<String, ?>[] batchValues) {
SqlParameterSource[] batchArgs = new SqlParameterSource[batchValues.length];
int i = 0;
@@ -299,6 +329,7 @@ public class NamedParameterJdbcTemplate implements NamedParameterJdbcOperations
return batchUpdate(sql, batchArgs);
}
@Override
public int[] batchUpdate(String sql, SqlParameterSource[] batchArgs) {
ParsedSql parsedSql = this.getParsedSql(sql);
return NamedParameterBatchUpdateUtils.executeBatchUpdateWithNamedParameters(parsedSql, batchArgs, getJdbcOperations());

View File

@@ -444,6 +444,7 @@ public abstract class AbstractJdbcInsert {
if (this.tableMetaDataContext.isGetGeneratedKeysSupported()) {
jdbcTemplate.update(
new PreparedStatementCreator() {
@Override
public PreparedStatement createPreparedStatement(Connection con) throws SQLException {
PreparedStatement ps = prepareStatementForGeneratedKeys(con);
setParameterValues(ps, values, getInsertTypes());
@@ -483,6 +484,7 @@ public abstract class AbstractJdbcInsert {
}
else {
jdbcTemplate.execute(new ConnectionCallback() {
@Override
public Object doInConnection(Connection con) throws SQLException, DataAccessException {
// Do the insert
PreparedStatement ps = null;
@@ -592,11 +594,13 @@ public abstract class AbstractJdbcInsert {
getInsertString(),
new BatchPreparedStatementSetter() {
@Override
public void setValues(PreparedStatement ps, int i) throws SQLException {
List<Object> values = batchValues[i];
setParameterValues(ps, values, getInsertTypes());
}
@Override
public int getBatchSize() {
return batchValues.length;
}

View File

@@ -79,33 +79,39 @@ public class SimpleJdbcCall extends AbstractJdbcCall implements SimpleJdbcCallOp
}
@Override
public SimpleJdbcCall withProcedureName(String procedureName) {
setProcedureName(procedureName);
setFunction(false);
return this;
}
@Override
public SimpleJdbcCall withFunctionName(String functionName) {
setProcedureName(functionName);
setFunction(true);
return this;
}
@Override
public SimpleJdbcCall withSchemaName(String schemaName) {
setSchemaName(schemaName);
return this;
}
@Override
public SimpleJdbcCall withCatalogName(String catalogName) {
setCatalogName(catalogName);
return this;
}
@Override
public SimpleJdbcCall withReturnValue() {
setReturnValueRequired(true);
return this;
}
@Override
public SimpleJdbcCall declareParameters(SqlParameter... sqlParameters) {
for (SqlParameter sqlParameter : sqlParameters) {
if (sqlParameter != null) {
@@ -115,11 +121,13 @@ public class SimpleJdbcCall extends AbstractJdbcCall implements SimpleJdbcCallOp
return this;
}
@Override
public SimpleJdbcCall useInParameterNames(String... inParameterNames) {
setInParameterNames(new HashSet<String>(Arrays.asList(inParameterNames)));
return this;
}
@Override
public SimpleJdbcCall returningResultSet(String parameterName, RowMapper rowMapper) {
addDeclaredRowMapper(parameterName, rowMapper);
return this;
@@ -128,55 +136,66 @@ public class SimpleJdbcCall extends AbstractJdbcCall implements SimpleJdbcCallOp
/**
* @deprecated in favor of {@link #returningResultSet(String, org.springframework.jdbc.core.RowMapper)}
*/
@Override
@Deprecated
public SimpleJdbcCall returningResultSet(String parameterName, ParameterizedRowMapper rowMapper) {
addDeclaredRowMapper(parameterName, rowMapper);
return this;
}
@Override
public SimpleJdbcCall withoutProcedureColumnMetaDataAccess() {
setAccessCallParameterMetaData(false);
return this;
}
@Override
@SuppressWarnings("unchecked")
public <T> T executeFunction(Class<T> returnType, Object... args) {
return (T) doExecute(args).get(getScalarOutParameterName());
}
@Override
@SuppressWarnings("unchecked")
public <T> T executeFunction(Class<T> returnType, Map<String, ?> args) {
return (T) doExecute(args).get(getScalarOutParameterName());
}
@Override
@SuppressWarnings("unchecked")
public <T> T executeFunction(Class<T> returnType, SqlParameterSource args) {
return (T) doExecute(args).get(getScalarOutParameterName());
}
@Override
@SuppressWarnings("unchecked")
public <T> T executeObject(Class<T> returnType, Object... args) {
return (T) doExecute(args).get(getScalarOutParameterName());
}
@Override
@SuppressWarnings("unchecked")
public <T> T executeObject(Class<T> returnType, Map<String, ?> args) {
return (T) doExecute(args).get(getScalarOutParameterName());
}
@Override
@SuppressWarnings("unchecked")
public <T> T executeObject(Class<T> returnType, SqlParameterSource args) {
return (T) doExecute(args).get(getScalarOutParameterName());
}
@Override
public Map<String, Object> execute(Object... args) {
return doExecute(args);
}
@Override
public Map<String, Object> execute(Map<String, ?> args) {
return doExecute(args);
}
@Override
public Map<String, Object> execute(SqlParameterSource parameterSource) {
return doExecute(parameterSource);
}

View File

@@ -70,74 +70,90 @@ public class SimpleJdbcInsert extends AbstractJdbcInsert implements SimpleJdbcIn
}
@Override
public SimpleJdbcInsert withTableName(String tableName) {
setTableName(tableName);
return this;
}
@Override
public SimpleJdbcInsert withSchemaName(String schemaName) {
setSchemaName(schemaName);
return this;
}
@Override
public SimpleJdbcInsert withCatalogName(String catalogName) {
setCatalogName(catalogName);
return this;
}
@Override
public SimpleJdbcInsert usingColumns(String... columnNames) {
setColumnNames(Arrays.asList(columnNames));
return this;
}
@Override
public SimpleJdbcInsert usingGeneratedKeyColumns(String... columnNames) {
setGeneratedKeyNames(columnNames);
return this;
}
@Override
public SimpleJdbcInsertOperations withoutTableColumnMetaDataAccess() {
setAccessTableColumnMetaData(false);
return this;
}
@Override
public SimpleJdbcInsertOperations includeSynonymsForTableColumnMetaData() {
setOverrideIncludeSynonymsDefault(true);
return this;
}
@Override
public SimpleJdbcInsertOperations useNativeJdbcExtractorForMetaData(NativeJdbcExtractor nativeJdbcExtractor) {
setNativeJdbcExtractor(nativeJdbcExtractor);
return this;
}
@Override
public int execute(Map<String, Object> args) {
return doExecute(args);
}
@Override
public int execute(SqlParameterSource parameterSource) {
return doExecute(parameterSource);
}
@Override
public Number executeAndReturnKey(Map<String, Object> args) {
return doExecuteAndReturnKey(args);
}
@Override
public Number executeAndReturnKey(SqlParameterSource parameterSource) {
return doExecuteAndReturnKey(parameterSource);
}
@Override
public KeyHolder executeAndReturnKeyHolder(Map<String, Object> args) {
return doExecuteAndReturnKeyHolder(args);
}
@Override
public KeyHolder executeAndReturnKeyHolder(SqlParameterSource parameterSource) {
return doExecuteAndReturnKeyHolder(parameterSource);
}
@Override
public int[] executeBatch(Map<String, Object>[] batch) {
return doExecuteBatch(batch);
}
@Override
public int[] executeBatch(SqlParameterSource[] batch) {
return doExecuteBatch(batch);
}

View File

@@ -91,6 +91,7 @@ public class SimpleJdbcTemplate implements SimpleJdbcOperations {
* Expose the classic Spring JdbcTemplate to allow invocation of
* less commonly used methods.
*/
@Override
public JdbcOperations getJdbcOperations() {
return this.namedParameterJdbcOperations.getJdbcOperations();
}
@@ -99,172 +100,207 @@ public class SimpleJdbcTemplate implements SimpleJdbcOperations {
* Expose the Spring NamedParameterJdbcTemplate to allow invocation of
* less commonly used methods.
*/
@Override
public NamedParameterJdbcOperations getNamedParameterJdbcOperations() {
return this.namedParameterJdbcOperations;
}
@Override
public int queryForInt(String sql, Map<String, ?> args) throws DataAccessException {
return getNamedParameterJdbcOperations().queryForInt(sql, args);
}
@Override
public int queryForInt(String sql, SqlParameterSource args) throws DataAccessException {
return getNamedParameterJdbcOperations().queryForInt(sql, args);
}
@Override
public int queryForInt(String sql, Object... args) throws DataAccessException {
return (ObjectUtils.isEmpty(args) ?
getJdbcOperations().queryForInt(sql) :
getJdbcOperations().queryForInt(sql, getArguments(args)));
}
@Override
public long queryForLong(String sql, Map<String, ?> args) throws DataAccessException {
return getNamedParameterJdbcOperations().queryForLong(sql, args);
}
@Override
public long queryForLong(String sql, SqlParameterSource args) throws DataAccessException {
return getNamedParameterJdbcOperations().queryForLong(sql, args);
}
@Override
public long queryForLong(String sql, Object... args) throws DataAccessException {
return (ObjectUtils.isEmpty(args) ?
getJdbcOperations().queryForLong(sql) :
getJdbcOperations().queryForLong(sql, getArguments(args)));
}
@Override
public <T> T queryForObject(String sql, Class<T> requiredType, Map<String, ?> args) throws DataAccessException {
return getNamedParameterJdbcOperations().queryForObject(sql, args, requiredType);
}
@Override
public <T> T queryForObject(String sql, Class<T> requiredType, SqlParameterSource args)
throws DataAccessException {
return getNamedParameterJdbcOperations().queryForObject(sql, args, requiredType);
}
@Override
public <T> T queryForObject(String sql, Class<T> requiredType, Object... args) throws DataAccessException {
return (ObjectUtils.isEmpty(args) ?
getJdbcOperations().queryForObject(sql, requiredType) :
getJdbcOperations().queryForObject(sql, getArguments(args), requiredType));
}
@Override
public <T> T queryForObject(String sql, RowMapper<T> rm, Map<String, ?> args) throws DataAccessException {
return getNamedParameterJdbcOperations().queryForObject(sql, args, rm);
}
@Override
@Deprecated
public <T> T queryForObject(String sql, ParameterizedRowMapper<T> rm, Map<String, ?> args) throws DataAccessException {
return queryForObject(sql, (RowMapper<T>) rm, args);
}
@Override
public <T> T queryForObject(String sql, RowMapper<T> rm, SqlParameterSource args)
throws DataAccessException {
return getNamedParameterJdbcOperations().queryForObject(sql, args, rm);
}
@Override
@Deprecated
public <T> T queryForObject(String sql, ParameterizedRowMapper<T> rm, SqlParameterSource args)
throws DataAccessException {
return queryForObject(sql, (RowMapper<T>) rm, args);
}
@Override
public <T> T queryForObject(String sql, RowMapper<T> rm, Object... args) throws DataAccessException {
return (ObjectUtils.isEmpty(args) ?
getJdbcOperations().queryForObject(sql, rm):
getJdbcOperations().queryForObject(sql, getArguments(args), rm));
}
@Override
@Deprecated
public <T> T queryForObject(String sql, ParameterizedRowMapper<T> rm, Object... args) throws DataAccessException {
return queryForObject(sql, (RowMapper<T>) rm, args);
}
@Override
public <T> List<T> query(String sql, RowMapper<T> rm, Map<String, ?> args) throws DataAccessException {
return getNamedParameterJdbcOperations().query(sql, args, rm);
}
@Override
@Deprecated
public <T> List<T> query(String sql, ParameterizedRowMapper<T> rm, Map<String, ?> args) throws DataAccessException {
return query(sql, (RowMapper<T>) rm, args);
}
@Override
public <T> List<T> query(String sql, RowMapper<T> rm, SqlParameterSource args)
throws DataAccessException {
return getNamedParameterJdbcOperations().query(sql, args, rm);
}
@Override
@Deprecated
public <T> List<T> query(String sql, ParameterizedRowMapper<T> rm, SqlParameterSource args)
throws DataAccessException {
return query(sql, (RowMapper<T>) rm, args);
}
@Override
public <T> List<T> query(String sql, RowMapper<T> rm, Object... args) throws DataAccessException {
return (ObjectUtils.isEmpty(args) ?
getJdbcOperations().query(sql, rm) :
getJdbcOperations().query(sql, getArguments(args), rm));
}
@Override
@Deprecated
public <T> List<T> query(String sql, ParameterizedRowMapper<T> rm, Object... args) throws DataAccessException {
return query(sql, (RowMapper<T>) rm, args);
}
@Override
public Map<String, Object> queryForMap(String sql, Map<String, ?> args) throws DataAccessException {
return getNamedParameterJdbcOperations().queryForMap(sql, args);
}
@Override
public Map<String, Object> queryForMap(String sql, SqlParameterSource args)
throws DataAccessException {
return getNamedParameterJdbcOperations().queryForMap(sql, args);
}
@Override
public Map<String, Object> queryForMap(String sql, Object... args) throws DataAccessException {
return (ObjectUtils.isEmpty(args) ?
getJdbcOperations().queryForMap(sql) :
getJdbcOperations().queryForMap(sql, getArguments(args)));
}
@Override
public List<Map<String, Object>> queryForList(String sql, Map<String, ?> args) throws DataAccessException {
return getNamedParameterJdbcOperations().queryForList(sql, args);
}
@Override
public List<Map<String, Object>> queryForList(String sql, SqlParameterSource args)
throws DataAccessException {
return getNamedParameterJdbcOperations().queryForList(sql, args);
}
@Override
public List<Map<String, Object>> queryForList(String sql, Object... args) throws DataAccessException {
return (ObjectUtils.isEmpty(args) ?
getJdbcOperations().queryForList(sql) :
getJdbcOperations().queryForList(sql, getArguments(args)));
}
@Override
public int update(String sql, Map<String, ?> args) throws DataAccessException {
return getNamedParameterJdbcOperations().update(sql, args);
}
@Override
public int update(String sql, SqlParameterSource args) throws DataAccessException {
return getNamedParameterJdbcOperations().update(sql, args);
}
@Override
public int update(String sql, Object ... args) throws DataAccessException {
return (ObjectUtils.isEmpty(args) ?
getJdbcOperations().update(sql) :
getJdbcOperations().update(sql, getArguments(args)));
}
@Override
public int[] batchUpdate(String sql, List<Object[]> batchArgs) {
return batchUpdate(sql, batchArgs, new int[0]);
}
@Override
public int[] batchUpdate(String sql, List<Object[]> batchArgs, int[] argTypes) {
return BatchUpdateUtils.executeBatchUpdate(sql, batchArgs, argTypes, getJdbcOperations());
}
@Override
public int[] batchUpdate(String sql, Map<String, ?>[] batchValues) {
return getNamedParameterJdbcOperations().batchUpdate(sql, batchValues);
}
@Override
public int[] batchUpdate(String sql, SqlParameterSource[] batchArgs) {
return getNamedParameterJdbcOperations().batchUpdate(sql, batchArgs);
}

View File

@@ -40,6 +40,7 @@ public abstract class AbstractInterruptibleBatchPreparedStatementSetter
* This implementation calls {@link #setValuesIfAvailable}
* and sets this instance's exhaustion flag accordingly.
*/
@Override
public final void setValues(PreparedStatement ps, int i) throws SQLException {
this.exhausted = !setValuesIfAvailable(ps, i);
}
@@ -47,6 +48,7 @@ public abstract class AbstractInterruptibleBatchPreparedStatementSetter
/**
* This implementation return this instance's current exhaustion flag.
*/
@Override
public final boolean isBatchExhausted(int i) {
return this.exhausted;
}
@@ -55,6 +57,7 @@ public abstract class AbstractInterruptibleBatchPreparedStatementSetter
* This implementation returns {@code Integer.MAX_VALUE}.
* Can be overridden in subclasses to lower the maximum batch size.
*/
@Override
public int getBatchSize() {
return Integer.MAX_VALUE;
}

View File

@@ -66,6 +66,7 @@ public abstract class AbstractLobCreatingPreparedStatementCallback implements Pr
}
@Override
public final Integer doInPreparedStatement(PreparedStatement ps) throws SQLException, DataAccessException {
LobCreator lobCreator = this.lobHandler.getLobCreator();
try {

View File

@@ -64,6 +64,7 @@ public abstract class AbstractLobStreamingResultSetExtractor implements ResultSe
* @see #streamData
* @see org.springframework.jdbc.LobRetrievalFailureException
*/
@Override
public final Object extractData(ResultSet rs) throws SQLException, DataAccessException {
if (!rs.next()) {
handleNoRowFound();

View File

@@ -52,6 +52,7 @@ import org.springframework.jdbc.core.SqlTypeValue;
*/
public abstract class AbstractSqlTypeValue implements SqlTypeValue {
@Override
public final void setTypeValue(PreparedStatement ps, int paramIndex, int sqlType, String typeName)
throws SQLException {

View File

@@ -107,6 +107,7 @@ public class JdbcBeanDefinitionReader {
Assert.notNull(this.jdbcTemplate, "Not fully configured - specify DataSource or JdbcTemplate");
final Properties props = new Properties();
this.jdbcTemplate.query(sql, new RowCallbackHandler() {
@Override
public void processRow(ResultSet rs) throws SQLException {
String beanName = rs.getString(1);
String property = rs.getString(2);

View File

@@ -168,6 +168,7 @@ public class SqlLobValue implements DisposableSqlTypeValue {
/**
* Set the specified content via the LobCreator.
*/
@Override
public void setTypeValue(PreparedStatement ps, int paramIndex, int sqlType, String typeName)
throws SQLException {
if (sqlType == Types.BLOB) {
@@ -208,6 +209,7 @@ public class SqlLobValue implements DisposableSqlTypeValue {
/**
* Close the LobCreator, if any.
*/
@Override
public void cleanup() {
this.lobCreator.close();
}

View File

@@ -45,6 +45,7 @@ public abstract class AbstractDataSource implements DataSource {
/**
* Returns 0, indicating the default system timeout is to be used.
*/
@Override
public int getLoginTimeout() throws SQLException {
return 0;
}
@@ -52,6 +53,7 @@ public abstract class AbstractDataSource implements DataSource {
/**
* Setting a login timeout is not supported.
*/
@Override
public void setLoginTimeout(int timeout) throws SQLException {
throw new UnsupportedOperationException("setLoginTimeout");
}
@@ -59,6 +61,7 @@ public abstract class AbstractDataSource implements DataSource {
/**
* LogWriter methods are not supported.
*/
@Override
public PrintWriter getLogWriter() {
throw new UnsupportedOperationException("getLogWriter");
}
@@ -66,6 +69,7 @@ public abstract class AbstractDataSource implements DataSource {
/**
* LogWriter methods are not supported.
*/
@Override
public void setLogWriter(PrintWriter pw) throws SQLException {
throw new UnsupportedOperationException("setLogWriter");
}
@@ -75,6 +79,7 @@ public abstract class AbstractDataSource implements DataSource {
// Implementation of JDBC 4.0's Wrapper interface
//---------------------------------------------------------------------
@Override
@SuppressWarnings("unchecked")
public <T> T unwrap(Class<T> iface) throws SQLException {
if (iface.isInstance(this)) {
@@ -84,6 +89,7 @@ public abstract class AbstractDataSource implements DataSource {
"] cannot be unwrapped as [" + iface.getName() + "]");
}
@Override
public boolean isWrapperFor(Class<?> iface) throws SQLException {
return iface.isInstance(this);
}
@@ -93,6 +99,7 @@ public abstract class AbstractDataSource implements DataSource {
// Implementation of JDBC 4.1's getParentLogger method
//---------------------------------------------------------------------
@Override
public Logger getParentLogger() {
return Logger.getLogger(Logger.GLOBAL_LOGGER_NAME);
}

View File

@@ -115,6 +115,7 @@ public abstract class AbstractDriverBasedDataSource extends AbstractDataSource {
* @see #setUsername
* @see #setPassword
*/
@Override
public Connection getConnection() throws SQLException {
return getConnectionFromDriver(getUsername(), getPassword());
}
@@ -124,6 +125,7 @@ public abstract class AbstractDriverBasedDataSource extends AbstractDataSource {
* using the given username and password.
* @see #getConnectionFromDriver(String, String)
*/
@Override
public Connection getConnection(String username, String password) throws SQLException {
return getConnectionFromDriver(username, password);
}

View File

@@ -162,6 +162,7 @@ public class DataSourceTransactionManager extends AbstractPlatformTransactionMan
return this.dataSource;
}
@Override
public void afterPropertiesSet() {
if (getDataSource() == null) {
throw new IllegalArgumentException("Property 'dataSource' is required");
@@ -169,6 +170,7 @@ public class DataSourceTransactionManager extends AbstractPlatformTransactionMan
}
@Override
public Object getResourceFactory() {
return getDataSource();
}
@@ -364,6 +366,7 @@ public class DataSourceTransactionManager extends AbstractPlatformTransactionMan
getConnectionHolder().setRollbackOnly();
}
@Override
public boolean isRollbackOnly() {
return getConnectionHolder().isRollbackOnly();
}

View File

@@ -73,6 +73,7 @@ public class DelegatingDataSource implements DataSource, InitializingBean {
return this.targetDataSource;
}
@Override
public void afterPropertiesSet() {
if (getTargetDataSource() == null) {
throw new IllegalArgumentException("Property 'targetDataSource' is required");
@@ -80,26 +81,32 @@ public class DelegatingDataSource implements DataSource, InitializingBean {
}
@Override
public Connection getConnection() throws SQLException {
return getTargetDataSource().getConnection();
}
@Override
public Connection getConnection(String username, String password) throws SQLException {
return getTargetDataSource().getConnection(username, password);
}
@Override
public PrintWriter getLogWriter() throws SQLException {
return getTargetDataSource().getLogWriter();
}
@Override
public void setLogWriter(PrintWriter out) throws SQLException {
getTargetDataSource().setLogWriter(out);
}
@Override
public int getLoginTimeout() throws SQLException {
return getTargetDataSource().getLoginTimeout();
}
@Override
public void setLoginTimeout(int seconds) throws SQLException {
getTargetDataSource().setLoginTimeout(seconds);
}
@@ -109,6 +116,7 @@ public class DelegatingDataSource implements DataSource, InitializingBean {
// Implementation of JDBC 4.0's Wrapper interface
//---------------------------------------------------------------------
@Override
@SuppressWarnings("unchecked")
public <T> T unwrap(Class<T> iface) throws SQLException {
if (iface.isInstance(this)) {
@@ -117,6 +125,7 @@ public class DelegatingDataSource implements DataSource, InitializingBean {
return getTargetDataSource().unwrap(iface);
}
@Override
public boolean isWrapperFor(Class<?> iface) throws SQLException {
return (iface.isInstance(this) || getTargetDataSource().isWrapperFor(iface));
}
@@ -126,6 +135,7 @@ public class DelegatingDataSource implements DataSource, InitializingBean {
// Implementation of JDBC 4.1's getParentLogger method
//---------------------------------------------------------------------
@Override
public Logger getParentLogger() {
return Logger.getLogger(Logger.GLOBAL_LOGGER_NAME);
}

View File

@@ -87,6 +87,7 @@ public abstract class JdbcTransactionObjectSupport implements SavepointManager,
return this.savepointAllowed;
}
@Override
public void flush() {
// no-op
}
@@ -100,6 +101,7 @@ public abstract class JdbcTransactionObjectSupport implements SavepointManager,
* This implementation creates a JDBC 3.0 Savepoint and returns it.
* @see java.sql.Connection#setSavepoint
*/
@Override
public Object createSavepoint() throws TransactionException {
ConnectionHolder conHolder = getConnectionHolderForSavepoint();
try {
@@ -124,6 +126,7 @@ public abstract class JdbcTransactionObjectSupport implements SavepointManager,
* This implementation rolls back to the given JDBC 3.0 Savepoint.
* @see java.sql.Connection#rollback(java.sql.Savepoint)
*/
@Override
public void rollbackToSavepoint(Object savepoint) throws TransactionException {
try {
getConnectionHolderForSavepoint().getConnection().rollback((Savepoint) savepoint);
@@ -137,6 +140,7 @@ public abstract class JdbcTransactionObjectSupport implements SavepointManager,
* This implementation releases the given JDBC 3.0 Savepoint.
* @see java.sql.Connection#releaseSavepoint
*/
@Override
public void releaseSavepoint(Object savepoint) throws TransactionException {
try {
getConnectionHolderForSavepoint().getConnection().releaseSavepoint((Savepoint) savepoint);

View File

@@ -274,6 +274,7 @@ public class LazyConnectionDataSourceProxy extends DelegatingDataSource {
this.password = password;
}
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
// Invocation on ConnectionProxy interface coming in...

View File

@@ -44,6 +44,7 @@ public class SimpleConnectionHandle implements ConnectionHandle {
/**
* Return the specified Connection as-is.
*/
@Override
public Connection getConnection() {
return this.connection;
}
@@ -52,6 +53,7 @@ public class SimpleConnectionHandle implements ConnectionHandle {
* This implementation is empty, as we're using a standard
* Connection handle that does not have to be released.
*/
@Override
public void releaseConnection(Connection con) {
}

View File

@@ -213,6 +213,7 @@ public class SingleConnectionDataSource extends DriverManagerDataSource
/**
* This is a single Connection: Do not close it when returning to the "pool".
*/
@Override
public boolean shouldClose(Connection con) {
synchronized (this.connectionMonitor) {
return (con != this.connection && con != this.target);
@@ -225,6 +226,7 @@ public class SingleConnectionDataSource extends DriverManagerDataSource
* <p>As this bean implements DisposableBean, a bean factory will
* automatically invoke this on destruction of its cached singletons.
*/
@Override
public void destroy() {
synchronized (this.connectionMonitor) {
closeConnection();
@@ -314,6 +316,7 @@ public class SingleConnectionDataSource extends DriverManagerDataSource
this.target = target;
}
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
// Invocation on ConnectionProxy interface coming in...

View File

@@ -174,6 +174,7 @@ public class TransactionAwareDataSourceProxy extends DelegatingDataSource {
this.targetDataSource = targetDataSource;
}
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
// Invocation on ConnectionProxy interface coming in...

View File

@@ -35,6 +35,7 @@ abstract class AbstractEmbeddedDatabaseConfigurer implements EmbeddedDatabaseCon
protected final Log logger = LogFactory.getLog(getClass());
@Override
public void shutdown(DataSource dataSource, String databaseName) {
try {
Connection connection = dataSource.getConnection();

View File

@@ -69,6 +69,7 @@ final class DerbyEmbeddedDatabaseConfigurer implements EmbeddedDatabaseConfigure
private DerbyEmbeddedDatabaseConfigurer() {
}
@Override
public void configureConnectionProperties(ConnectionProperties properties, String databaseName) {
properties.setDriverClass(EmbeddedDriver.class);
properties.setUrl(String.format(URL_TEMPLATE, databaseName, "create=true"));
@@ -76,6 +77,7 @@ final class DerbyEmbeddedDatabaseConfigurer implements EmbeddedDatabaseConfigure
properties.setPassword("");
}
@Override
public void shutdown(DataSource dataSource, String databaseName) {
try {
new EmbeddedDriver().connect(

View File

@@ -172,44 +172,54 @@ public class EmbeddedDatabaseFactory {
this.dataSource = dataSource;
}
@Override
public Connection getConnection() throws SQLException {
return this.dataSource.getConnection();
}
@Override
public Connection getConnection(String username, String password) throws SQLException {
return this.dataSource.getConnection(username, password);
}
@Override
public PrintWriter getLogWriter() throws SQLException {
return this.dataSource.getLogWriter();
}
@Override
public void setLogWriter(PrintWriter out) throws SQLException {
this.dataSource.setLogWriter(out);
}
@Override
public int getLoginTimeout() throws SQLException {
return this.dataSource.getLoginTimeout();
}
@Override
public void setLoginTimeout(int seconds) throws SQLException {
this.dataSource.setLoginTimeout(seconds);
}
@Override
public <T> T unwrap(Class<T> iface) throws SQLException {
return this.dataSource.unwrap(iface);
}
@Override
public boolean isWrapperFor(Class<?> iface) throws SQLException {
return this.dataSource.isWrapperFor(iface);
}
// getParentLogger() is required for JDBC 4.1 compatibility
@Override
@SuppressWarnings("unused")
public Logger getParentLogger() {
return Logger.getLogger(Logger.GLOBAL_LOGGER_NAME);
}
@Override
public void shutdown() {
shutdownDatabase();
}

View File

@@ -54,10 +54,12 @@ public class EmbeddedDatabaseFactoryBean extends EmbeddedDatabaseFactory
this.databaseCleaner = databaseCleaner;
}
@Override
public void afterPropertiesSet() {
initDatabase();
}
@Override
public void destroy() {
if (this.databaseCleaner != null) {
DatabasePopulatorUtils.execute(this.databaseCleaner, getDataSource());
@@ -66,14 +68,17 @@ public class EmbeddedDatabaseFactoryBean extends EmbeddedDatabaseFactory
}
@Override
public DataSource getObject() {
return getDataSource();
}
@Override
public Class<? extends DataSource> getObjectType() {
return DataSource.class;
}
@Override
public boolean isSingleton() {
return true;
}

View File

@@ -52,6 +52,7 @@ final class H2EmbeddedDatabaseConfigurer extends AbstractEmbeddedDatabaseConfigu
this.driverClass = driverClass;
}
@Override
public void configureConnectionProperties(ConnectionProperties properties, String databaseName) {
properties.setDriverClass(this.driverClass);
properties.setUrl(String.format("jdbc:h2:mem:%s;DB_CLOSE_DELAY=-1", databaseName));

View File

@@ -52,6 +52,7 @@ final class HsqlEmbeddedDatabaseConfigurer extends AbstractEmbeddedDatabaseConfi
this.driverClass = driverClass;
}
@Override
public void configureConnectionProperties(ConnectionProperties properties, String databaseName) {
properties.setDriverClass(this.driverClass);
properties.setUrl("jdbc:hsqldb:mem:" + databaseName);

View File

@@ -33,6 +33,7 @@ public class OutputStreamFactory {
*/
public static OutputStream getNoopOutputStream() {
return new OutputStream() {
@Override
public void write(int b) throws IOException {
// ignore the output
}

View File

@@ -33,26 +33,32 @@ final class SimpleDriverDataSourceFactory implements DataSourceFactory {
private final SimpleDriverDataSource dataSource = new SimpleDriverDataSource();
@Override
public ConnectionProperties getConnectionProperties() {
return new ConnectionProperties() {
@Override
public void setDriverClass(Class<? extends Driver> driverClass) {
dataSource.setDriverClass(driverClass);
}
@Override
public void setUrl(String url) {
dataSource.setUrl(url);
}
@Override
public void setUsername(String username) {
dataSource.setUsername(username);
}
@Override
public void setPassword(String password) {
dataSource.setPassword(password);
}
};
}
@Override
public DataSource getDataSource() {
return this.dataSource;
}

View File

@@ -50,6 +50,7 @@ public class CompositeDatabasePopulator implements DatabasePopulator {
}
@Override
public void populate(Connection connection) throws SQLException {
for (DatabasePopulator populator : this.populators) {
populator.populate(connection);

View File

@@ -78,6 +78,7 @@ public class DataSourceInitializer implements InitializingBean, DisposableBean {
/**
* Use the populator to set up data in the data source.
*/
@Override
public void afterPropertiesSet() {
if (this.databasePopulator != null && this.enabled) {
DatabasePopulatorUtils.execute(this.databasePopulator, this.dataSource);
@@ -87,6 +88,7 @@ public class DataSourceInitializer implements InitializingBean, DisposableBean {
/**
* Use the populator to clean up data in the data source.
*/
@Override
public void destroy() {
if (this.databaseCleaner != null && this.enabled) {
DatabasePopulatorUtils.execute(this.databaseCleaner, this.dataSource);

View File

@@ -129,6 +129,7 @@ public class ResourceDatabasePopulator implements DatabasePopulator {
}
@Override
public void populate(Connection connection) throws SQLException {
for (Resource script : this.scripts) {
executeSqlScript(connection, applyEncodingIfNecessary(script), this.continueOnError, this.ignoreFailedDrops);

View File

@@ -107,6 +107,7 @@ public abstract class AbstractRoutingDataSource extends AbstractDataSource imple
}
@Override
public void afterPropertiesSet() {
if (this.targetDataSources == null) {
throw new IllegalArgumentException("Property 'targetDataSources' is required");
@@ -158,10 +159,12 @@ public abstract class AbstractRoutingDataSource extends AbstractDataSource imple
}
@Override
public Connection getConnection() throws SQLException {
return determineTargetDataSource().getConnection();
}
@Override
public Connection getConnection(String username, String password) throws SQLException {
return determineTargetDataSource().getConnection(username, password);
}

View File

@@ -62,11 +62,13 @@ public class BeanFactoryDataSourceLookup implements DataSourceLookup, BeanFactor
}
@Override
public void setBeanFactory(BeanFactory beanFactory) {
this.beanFactory = beanFactory;
}
@Override
public DataSource getDataSource(String dataSourceName) throws DataSourceLookupFailureException {
Assert.state(this.beanFactory != null, "BeanFactory is required");
try {

View File

@@ -39,6 +39,7 @@ public class JndiDataSourceLookup extends JndiLocatorSupport implements DataSour
setResourceRef(true);
}
@Override
public DataSource getDataSource(String dataSourceName) throws DataSourceLookupFailureException {
try {
return lookup(dataSourceName, DataSource.class);

View File

@@ -98,6 +98,7 @@ public class MapDataSourceLookup implements DataSourceLookup {
this.dataSources.put(dataSourceName, dataSource);
}
@Override
public DataSource getDataSource(String dataSourceName) throws DataSourceLookupFailureException {
Assert.notNull(dataSourceName, "DataSource name must not be null");
DataSource dataSource = this.dataSources.get(dataSourceName);

View File

@@ -42,6 +42,7 @@ public class SingleDataSourceLookup implements DataSourceLookup {
}
@Override
public DataSource getDataSource(String dataSourceName) {
return this.dataSource;
}

View File

@@ -184,9 +184,11 @@ public class BatchSqlUpdate extends SqlUpdate {
int[] rowsAffected = getJdbcTemplate().batchUpdate(
getSql(),
new BatchPreparedStatementSetter() {
@Override
public int getBatchSize() {
return parameterQueue.size();
}
@Override
public void setValues(PreparedStatement ps, int index) throws SQLException {
Object[] params = parameterQueue.removeFirst();
newPreparedStatementSetter(params).setValues(ps);

View File

@@ -37,11 +37,13 @@ public class GenericSqlQuery extends SqlQuery {
"'org.springframework.jdbc.core.RowMapper'");
}
@Override
public void afterPropertiesSet() {
super.afterPropertiesSet();
Assert.notNull(rowMapperClass, "The 'rowMapperClass' property is required");
}
@Override
protected RowMapper newRowMapper(Object[] parameters, Map context) {
try {
return (RowMapper) rowMapperClass.newInstance();

View File

@@ -111,6 +111,7 @@ public abstract class MappingSqlQueryWithParameters<T> extends SqlQuery<T> {
this.context = context;
}
@Override
public T mapRow(ResultSet rs, int rowNum) throws SQLException {
return MappingSqlQueryWithParameters.this.mapRow(rs, rowNum, this.params, this.context);
}

View File

@@ -313,6 +313,7 @@ public abstract class RdbmsOperation implements InitializingBean {
/**
* Ensures compilation if used in a bean factory.
*/
@Override
public void afterPropertiesSet() {
compile();
}

View File

@@ -94,6 +94,7 @@ public abstract class UpdatableSqlQuery<T> extends SqlQuery<T> {
this.context = context;
}
@Override
public T mapRow(ResultSet rs, int rowNum) throws SQLException {
T result = updateRow(rs, rowNum, this.context);
rs.updateRow();

View File

@@ -60,6 +60,7 @@ public abstract class AbstractFallbackSQLExceptionTranslator implements SQLExcep
* Pre-checks the arguments, calls {@link #doTranslate}, and invokes the
* {@link #getFallbackTranslator() fallback translator} if necessary.
*/
@Override
public DataAccessException translate(String task, String sql, SQLException ex) {
Assert.notNull(ex, "Cannot translate a null SQLException");
if (task == null) {

View File

@@ -48,6 +48,7 @@ public class CustomSQLExceptionTranslatorRegistrar implements InitializingBean {
this.translators.putAll(translators);
}
@Override
public void afterPropertiesSet() {
for (String dbName : this.translators.keySet()) {
CustomSQLExceptionTranslatorRegistry.getInstance().registerTranslator(dbName, this.translators.get(dbName));

View File

@@ -93,6 +93,7 @@ public class DatabaseStartupValidator implements InitializingBean {
* from the specified DataSource, with the specified interval between
* checks, until the specified timeout.
*/
@Override
public void afterPropertiesSet() {
if (this.dataSource == null) {
throw new IllegalArgumentException("dataSource is required");

View File

@@ -57,6 +57,7 @@ public class GeneratedKeyHolder implements KeyHolder {
}
@Override
public Number getKey() throws InvalidDataAccessApiUsageException, DataRetrievalFailureException {
if (this.keyList.size() == 0) {
return null;
@@ -83,6 +84,7 @@ public class GeneratedKeyHolder implements KeyHolder {
}
}
@Override
public Map<String, Object> getKeys() throws InvalidDataAccessApiUsageException {
if (this.keyList.size() == 0) {
return null;
@@ -94,6 +96,7 @@ public class GeneratedKeyHolder implements KeyHolder {
return this.keyList.get(0);
}
@Override
public List<Map<String, Object>> getKeyList() {
return this.keyList;
}

View File

@@ -129,6 +129,7 @@ public abstract class JdbcAccessor implements InitializingBean {
* Eagerly initialize the exception translator, if demanded,
* creating a default one for the specified DataSource if none set.
*/
@Override
public void afterPropertiesSet() {
if (getDataSource() == null) {
throw new IllegalArgumentException("Property 'dataSource' is required");

View File

@@ -319,6 +319,7 @@ public abstract class JdbcUtils {
return extractDatabaseMetaData(dataSource,
new DatabaseMetaDataCallback() {
@Override
public Object processMetaData(DatabaseMetaData dbmd) throws SQLException, MetaDataAccessException {
try {
Method method = DatabaseMetaData.class.getMethod(metaDataMethodName, (Class[]) null);

View File

@@ -107,6 +107,7 @@ public abstract class AbstractDataFieldMaxValueIncrementer implements DataFieldM
return this.paddingLength;
}
@Override
public void afterPropertiesSet() {
if (this.dataSource == null) {
throw new IllegalArgumentException("Property 'dataSource' is required");
@@ -117,14 +118,17 @@ public abstract class AbstractDataFieldMaxValueIncrementer implements DataFieldM
}
@Override
public int nextIntValue() throws DataAccessException {
return (int) getNextKey();
}
@Override
public long nextLongValue() throws DataAccessException {
return getNextKey();
}
@Override
public String nextStringValue() throws DataAccessException {
String s = Long.toString(getNextKey());
int len = s.length();

View File

@@ -33,22 +33,27 @@ import java.sql.SQLException;
*/
public abstract class AbstractLobHandler implements LobHandler {
@Override
public byte[] getBlobAsBytes(ResultSet rs, String columnName) throws SQLException {
return getBlobAsBytes(rs, rs.findColumn(columnName));
}
@Override
public InputStream getBlobAsBinaryStream(ResultSet rs, String columnName) throws SQLException {
return getBlobAsBinaryStream(rs, rs.findColumn(columnName));
}
@Override
public String getClobAsString(ResultSet rs, String columnName) throws SQLException {
return getClobAsString(rs, rs.findColumn(columnName));
}
@Override
public InputStream getClobAsAsciiStream(ResultSet rs, String columnName) throws SQLException {
return getClobAsAsciiStream(rs, rs.findColumn(columnName));
}
@Override
public Reader getClobAsCharacterStream(ResultSet rs, String columnName) throws SQLException {
return getClobAsCharacterStream(rs, rs.findColumn(columnName));
}

View File

@@ -113,6 +113,7 @@ public class DefaultLobHandler extends AbstractLobHandler {
}
@Override
public byte[] getBlobAsBytes(ResultSet rs, int columnIndex) throws SQLException {
logger.debug("Returning BLOB as bytes");
if (this.wrapAsLob) {
@@ -124,6 +125,7 @@ public class DefaultLobHandler extends AbstractLobHandler {
}
}
@Override
public InputStream getBlobAsBinaryStream(ResultSet rs, int columnIndex) throws SQLException {
logger.debug("Returning BLOB as binary stream");
if (this.wrapAsLob) {
@@ -135,6 +137,7 @@ public class DefaultLobHandler extends AbstractLobHandler {
}
}
@Override
public String getClobAsString(ResultSet rs, int columnIndex) throws SQLException {
logger.debug("Returning CLOB as string");
if (this.wrapAsLob) {
@@ -146,6 +149,7 @@ public class DefaultLobHandler extends AbstractLobHandler {
}
}
@Override
public InputStream getClobAsAsciiStream(ResultSet rs, int columnIndex) throws SQLException {
logger.debug("Returning CLOB as ASCII stream");
if (this.wrapAsLob) {
@@ -157,6 +161,7 @@ public class DefaultLobHandler extends AbstractLobHandler {
}
}
@Override
public Reader getClobAsCharacterStream(ResultSet rs, int columnIndex) throws SQLException {
logger.debug("Returning CLOB as character stream");
if (this.wrapAsLob) {
@@ -168,6 +173,7 @@ public class DefaultLobHandler extends AbstractLobHandler {
}
}
@Override
public LobCreator getLobCreator() {
return new DefaultLobCreator();
}
@@ -179,6 +185,7 @@ public class DefaultLobHandler extends AbstractLobHandler {
*/
protected class DefaultLobCreator implements LobCreator {
@Override
public void setBlobAsBytes(PreparedStatement ps, int paramIndex, byte[] content)
throws SQLException {
@@ -207,6 +214,7 @@ public class DefaultLobHandler extends AbstractLobHandler {
}
}
@Override
public void setBlobAsBinaryStream(
PreparedStatement ps, int paramIndex, InputStream binaryStream, int contentLength)
throws SQLException {
@@ -236,6 +244,7 @@ public class DefaultLobHandler extends AbstractLobHandler {
}
}
@Override
public void setClobAsString(PreparedStatement ps, int paramIndex, String content)
throws SQLException {
@@ -264,6 +273,7 @@ public class DefaultLobHandler extends AbstractLobHandler {
}
}
@Override
public void setClobAsAsciiStream(
PreparedStatement ps, int paramIndex, InputStream asciiStream, int contentLength)
throws SQLException {
@@ -295,6 +305,7 @@ public class DefaultLobHandler extends AbstractLobHandler {
}
}
@Override
public void setClobAsCharacterStream(
PreparedStatement ps, int paramIndex, Reader characterStream, int contentLength)
throws SQLException {
@@ -324,6 +335,7 @@ public class DefaultLobHandler extends AbstractLobHandler {
}
}
@Override
public void close() {
// nothing to do here
}

View File

@@ -46,6 +46,7 @@ public class JtaLobCreatorSynchronization implements Synchronization {
this.lobCreator = lobCreator;
}
@Override
public void beforeCompletion() {
// Close the LobCreator early if possible, to avoid issues with strict JTA
// implementations that issue warnings when doing JDBC operations after
@@ -54,6 +55,7 @@ public class JtaLobCreatorSynchronization implements Synchronization {
this.lobCreator.close();
}
@Override
public void afterCompletion(int status) {
if (!this.beforeCompletionCalled) {
// beforeCompletion not called before (probably because of JTA rollback).

View File

@@ -135,6 +135,7 @@ public interface LobCreator extends Closeable {
* been executed or the affected O/R mapping sessions have been flushed.
* Otherwise, the database resources for the temporary BLOBs might stay allocated.
*/
@Override
void close();
}

View File

@@ -211,6 +211,7 @@ public class OracleLobHandler extends AbstractLobHandler {
}
@Override
public byte[] getBlobAsBytes(ResultSet rs, int columnIndex) throws SQLException {
logger.debug("Returning Oracle BLOB as bytes");
Blob blob = rs.getBlob(columnIndex);
@@ -220,6 +221,7 @@ public class OracleLobHandler extends AbstractLobHandler {
return retVal;
}
@Override
public InputStream getBlobAsBinaryStream(ResultSet rs, int columnIndex) throws SQLException {
logger.debug("Returning Oracle BLOB as binary stream");
Blob blob = rs.getBlob(columnIndex);
@@ -229,6 +231,7 @@ public class OracleLobHandler extends AbstractLobHandler {
return retVal;
}
@Override
public String getClobAsString(ResultSet rs, int columnIndex) throws SQLException {
logger.debug("Returning Oracle CLOB as string");
Clob clob = rs.getClob(columnIndex);
@@ -238,6 +241,7 @@ public class OracleLobHandler extends AbstractLobHandler {
return retVal;
}
@Override
public InputStream getClobAsAsciiStream(ResultSet rs, int columnIndex) throws SQLException {
logger.debug("Returning Oracle CLOB as ASCII stream");
Clob clob = rs.getClob(columnIndex);
@@ -247,6 +251,7 @@ public class OracleLobHandler extends AbstractLobHandler {
return retVal;
}
@Override
public Reader getClobAsCharacterStream(ResultSet rs, int columnIndex) throws SQLException {
logger.debug("Returning Oracle CLOB as character stream");
Clob clob = rs.getClob(columnIndex);
@@ -256,6 +261,7 @@ public class OracleLobHandler extends AbstractLobHandler {
return retVal;
}
@Override
public LobCreator getLobCreator() {
return new OracleLobCreator();
}
@@ -368,11 +374,13 @@ public class OracleLobHandler extends AbstractLobHandler {
private final List createdLobs = new LinkedList();
@Override
public void setBlobAsBytes(PreparedStatement ps, int paramIndex, final byte[] content)
throws SQLException {
if (content != null) {
Blob blob = (Blob) createLob(ps, false, new LobCallback() {
@Override
public void populateLob(Object lob) throws Exception {
Method methodToInvoke = lob.getClass().getMethod("getBinaryOutputStream");
OutputStream out = (OutputStream) methodToInvoke.invoke(lob);
@@ -390,12 +398,14 @@ public class OracleLobHandler extends AbstractLobHandler {
}
}
@Override
public void setBlobAsBinaryStream(
PreparedStatement ps, int paramIndex, final InputStream binaryStream, int contentLength)
throws SQLException {
if (binaryStream != null) {
Blob blob = (Blob) createLob(ps, false, new LobCallback() {
@Override
public void populateLob(Object lob) throws Exception {
Method methodToInvoke = lob.getClass().getMethod("getBinaryOutputStream", (Class[]) null);
OutputStream out = (OutputStream) methodToInvoke.invoke(lob, (Object[]) null);
@@ -413,11 +423,13 @@ public class OracleLobHandler extends AbstractLobHandler {
}
}
@Override
public void setClobAsString(PreparedStatement ps, int paramIndex, final String content)
throws SQLException {
if (content != null) {
Clob clob = (Clob) createLob(ps, true, new LobCallback() {
@Override
public void populateLob(Object lob) throws Exception {
Method methodToInvoke = lob.getClass().getMethod("getCharacterOutputStream", (Class[]) null);
Writer writer = (Writer) methodToInvoke.invoke(lob, (Object[]) null);
@@ -435,12 +447,14 @@ public class OracleLobHandler extends AbstractLobHandler {
}
}
@Override
public void setClobAsAsciiStream(
PreparedStatement ps, int paramIndex, final InputStream asciiStream, int contentLength)
throws SQLException {
if (asciiStream != null) {
Clob clob = (Clob) createLob(ps, true, new LobCallback() {
@Override
public void populateLob(Object lob) throws Exception {
Method methodToInvoke = lob.getClass().getMethod("getAsciiOutputStream", (Class[]) null);
OutputStream out = (OutputStream) methodToInvoke.invoke(lob, (Object[]) null);
@@ -458,12 +472,14 @@ public class OracleLobHandler extends AbstractLobHandler {
}
}
@Override
public void setClobAsCharacterStream(
PreparedStatement ps, int paramIndex, final Reader characterStream, int contentLength)
throws SQLException {
if (characterStream != null) {
Clob clob = (Clob) createLob(ps, true, new LobCallback() {
@Override
public void populateLob(Object lob) throws Exception {
Method methodToInvoke = lob.getClass().getMethod("getCharacterOutputStream", (Class[]) null);
Writer writer = (Writer) methodToInvoke.invoke(lob, (Object[]) null);
@@ -554,6 +570,7 @@ public class OracleLobHandler extends AbstractLobHandler {
/**
* Free all temporary BLOBs and CLOBs created by this creator.
*/
@Override
public void close() {
try {
for (Iterator it = this.createdLobs.iterator(); it.hasNext();) {

View File

@@ -49,47 +49,58 @@ class PassThroughBlob implements Blob {
}
@Override
public long length() throws SQLException {
return this.contentLength;
}
@Override
public InputStream getBinaryStream() throws SQLException {
return (this.content != null ? new ByteArrayInputStream(this.content) : this.binaryStream);
}
@Override
public InputStream getBinaryStream(long pos, long length) throws SQLException {
throw new UnsupportedOperationException();
}
@Override
public OutputStream setBinaryStream(long pos) throws SQLException {
throw new UnsupportedOperationException();
}
@Override
public byte[] getBytes(long pos, int length) throws SQLException {
throw new UnsupportedOperationException();
}
@Override
public int setBytes(long pos, byte[] bytes) throws SQLException {
throw new UnsupportedOperationException();
}
@Override
public int setBytes(long pos, byte[] bytes, int offset, int len) throws SQLException {
throw new UnsupportedOperationException();
}
@Override
public long position(byte pattern[], long start) throws SQLException {
throw new UnsupportedOperationException();
}
@Override
public long position(Blob pattern, long start) throws SQLException {
throw new UnsupportedOperationException();
}
@Override
public void truncate(long len) throws SQLException {
throw new UnsupportedOperationException();
}
@Override
public void free() throws SQLException {
// no-op
}

View File

@@ -64,10 +64,12 @@ class PassThroughClob implements Clob {
}
@Override
public long length() throws SQLException {
return this.contentLength;
}
@Override
public Reader getCharacterStream() throws SQLException {
try {
if (this.content != null) {
@@ -85,6 +87,7 @@ class PassThroughClob implements Clob {
}
}
@Override
public InputStream getAsciiStream() throws SQLException {
try {
if (this.content != null) {
@@ -107,42 +110,52 @@ class PassThroughClob implements Clob {
}
@Override
public Reader getCharacterStream(long pos, long length) throws SQLException {
throw new UnsupportedOperationException();
}
@Override
public Writer setCharacterStream(long pos) throws SQLException {
throw new UnsupportedOperationException();
}
@Override
public OutputStream setAsciiStream(long pos) throws SQLException {
throw new UnsupportedOperationException();
}
@Override
public String getSubString(long pos, int length) throws SQLException {
throw new UnsupportedOperationException();
}
@Override
public int setString(long pos, String str) throws SQLException {
throw new UnsupportedOperationException();
}
@Override
public int setString(long pos, String str, int offset, int len) throws SQLException {
throw new UnsupportedOperationException();
}
@Override
public long position(String searchstr, long start) throws SQLException {
throw new UnsupportedOperationException();
}
@Override
public long position(Clob searchstr, long start) throws SQLException {
throw new UnsupportedOperationException();
}
@Override
public void truncate(long len) throws SQLException {
throw new UnsupportedOperationException();
}
@Override
public void free() throws SQLException {
// no-op
}

View File

@@ -61,6 +61,7 @@ public abstract class NativeJdbcExtractorAdapter implements NativeJdbcExtractor
/**
* Return {@code false} by default.
*/
@Override
public boolean isNativeConnectionNecessaryForNativeStatements() {
return false;
}
@@ -68,6 +69,7 @@ public abstract class NativeJdbcExtractorAdapter implements NativeJdbcExtractor
/**
* Return {@code false} by default.
*/
@Override
public boolean isNativeConnectionNecessaryForNativePreparedStatements() {
return false;
}
@@ -75,6 +77,7 @@ public abstract class NativeJdbcExtractorAdapter implements NativeJdbcExtractor
/**
* Return {@code false} by default.
*/
@Override
public boolean isNativeConnectionNecessaryForNativeCallableStatements() {
return false;
}
@@ -91,6 +94,7 @@ public abstract class NativeJdbcExtractorAdapter implements NativeJdbcExtractor
* @see org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy
* @see org.springframework.jdbc.datasource.LazyConnectionDataSourceProxy
*/
@Override
public Connection getNativeConnection(Connection con) throws SQLException {
if (con == null) {
return null;
@@ -128,6 +132,7 @@ public abstract class NativeJdbcExtractorAdapter implements NativeJdbcExtractor
* @see #getNativeConnection
* @see Statement#getConnection
*/
@Override
public Connection getNativeConnectionFromStatement(Statement stmt) throws SQLException {
if (stmt == null) {
return null;
@@ -138,6 +143,7 @@ public abstract class NativeJdbcExtractorAdapter implements NativeJdbcExtractor
/**
* Not able to unwrap: return passed-in Statement.
*/
@Override
public Statement getNativeStatement(Statement stmt) throws SQLException {
return stmt;
}
@@ -145,6 +151,7 @@ public abstract class NativeJdbcExtractorAdapter implements NativeJdbcExtractor
/**
* Not able to unwrap: return passed-in PreparedStatement.
*/
@Override
public PreparedStatement getNativePreparedStatement(PreparedStatement ps) throws SQLException {
return ps;
}
@@ -152,6 +159,7 @@ public abstract class NativeJdbcExtractorAdapter implements NativeJdbcExtractor
/**
* Not able to unwrap: return passed-in CallableStatement.
*/
@Override
public CallableStatement getNativeCallableStatement(CallableStatement cs) throws SQLException {
return cs;
}
@@ -159,6 +167,7 @@ public abstract class NativeJdbcExtractorAdapter implements NativeJdbcExtractor
/**
* Not able to unwrap: return passed-in ResultSet.
*/
@Override
public ResultSet getNativeResultSet(ResultSet rs) throws SQLException {
return rs;
}

View File

@@ -125,6 +125,7 @@ public class ResultSetWrappingSqlRowSet implements SqlRowSet {
/**
* @see java.sql.ResultSetMetaData#getCatalogName(int)
*/
@Override
public final SqlRowSetMetaData getMetaData() {
return this.rowSetMetaData;
}
@@ -132,6 +133,7 @@ public class ResultSetWrappingSqlRowSet implements SqlRowSet {
/**
* @see java.sql.ResultSet#findColumn(String)
*/
@Override
public int findColumn(String columnLabel) throws InvalidResultSetAccessException {
Integer columnIndex = this.columnLabelMap.get(columnLabel);
if (columnIndex != null) {
@@ -153,6 +155,7 @@ public class ResultSetWrappingSqlRowSet implements SqlRowSet {
/**
* @see java.sql.ResultSet#getBigDecimal(int)
*/
@Override
public BigDecimal getBigDecimal(int columnIndex) throws InvalidResultSetAccessException {
try {
return this.resultSet.getBigDecimal(columnIndex);
@@ -165,6 +168,7 @@ public class ResultSetWrappingSqlRowSet implements SqlRowSet {
/**
* @see java.sql.ResultSet#getBigDecimal(String)
*/
@Override
public BigDecimal getBigDecimal(String columnLabel) throws InvalidResultSetAccessException {
return getBigDecimal(findColumn(columnLabel));
}
@@ -172,6 +176,7 @@ public class ResultSetWrappingSqlRowSet implements SqlRowSet {
/**
* @see java.sql.ResultSet#getBoolean(int)
*/
@Override
public boolean getBoolean(int columnIndex) throws InvalidResultSetAccessException {
try {
return this.resultSet.getBoolean(columnIndex);
@@ -184,6 +189,7 @@ public class ResultSetWrappingSqlRowSet implements SqlRowSet {
/**
* @see java.sql.ResultSet#getBoolean(String)
*/
@Override
public boolean getBoolean(String columnLabel) throws InvalidResultSetAccessException {
return getBoolean(findColumn(columnLabel));
}
@@ -191,6 +197,7 @@ public class ResultSetWrappingSqlRowSet implements SqlRowSet {
/**
* @see java.sql.ResultSet#getByte(int)
*/
@Override
public byte getByte(int columnIndex) throws InvalidResultSetAccessException {
try {
return this.resultSet.getByte(columnIndex);
@@ -203,6 +210,7 @@ public class ResultSetWrappingSqlRowSet implements SqlRowSet {
/**
* @see java.sql.ResultSet#getByte(String)
*/
@Override
public byte getByte(String columnLabel) throws InvalidResultSetAccessException {
return getByte(findColumn(columnLabel));
}
@@ -210,6 +218,7 @@ public class ResultSetWrappingSqlRowSet implements SqlRowSet {
/**
* @see java.sql.ResultSet#getDate(int, java.util.Calendar)
*/
@Override
public Date getDate(int columnIndex, Calendar cal) throws InvalidResultSetAccessException {
try {
return this.resultSet.getDate(columnIndex, cal);
@@ -222,6 +231,7 @@ public class ResultSetWrappingSqlRowSet implements SqlRowSet {
/**
* @see java.sql.ResultSet#getDate(int)
*/
@Override
public Date getDate(int columnIndex) throws InvalidResultSetAccessException {
try {
return this.resultSet.getDate(columnIndex);
@@ -233,6 +243,7 @@ public class ResultSetWrappingSqlRowSet implements SqlRowSet {
/**
* @see java.sql.ResultSet#getDate(String, java.util.Calendar)
*/
@Override
public Date getDate(String columnLabel, Calendar cal) throws InvalidResultSetAccessException {
return getDate(findColumn(columnLabel), cal);
}
@@ -240,6 +251,7 @@ public class ResultSetWrappingSqlRowSet implements SqlRowSet {
/**
* @see java.sql.ResultSet#getDate(String)
*/
@Override
public Date getDate(String columnLabel) throws InvalidResultSetAccessException {
return getDate(findColumn(columnLabel));
}
@@ -247,6 +259,7 @@ public class ResultSetWrappingSqlRowSet implements SqlRowSet {
/**
* @see java.sql.ResultSet#getDouble(int)
*/
@Override
public double getDouble(int columnIndex) throws InvalidResultSetAccessException {
try {
return this.resultSet.getDouble(columnIndex);
@@ -259,6 +272,7 @@ public class ResultSetWrappingSqlRowSet implements SqlRowSet {
/**
* @see java.sql.ResultSet#getDouble(String)
*/
@Override
public double getDouble(String columnLabel) throws InvalidResultSetAccessException {
return getDouble(findColumn(columnLabel));
}
@@ -266,6 +280,7 @@ public class ResultSetWrappingSqlRowSet implements SqlRowSet {
/**
* @see java.sql.ResultSet#getFloat(int)
*/
@Override
public float getFloat(int columnIndex) throws InvalidResultSetAccessException {
try {
return this.resultSet.getFloat(columnIndex);
@@ -278,12 +293,14 @@ public class ResultSetWrappingSqlRowSet implements SqlRowSet {
/**
* @see java.sql.ResultSet#getFloat(String)
*/
@Override
public float getFloat(String columnLabel) throws InvalidResultSetAccessException {
return getFloat(findColumn(columnLabel));
}
/**
* @see java.sql.ResultSet#getInt(int)
*/
@Override
public int getInt(int columnIndex) throws InvalidResultSetAccessException {
try {
return this.resultSet.getInt(columnIndex);
@@ -296,6 +313,7 @@ public class ResultSetWrappingSqlRowSet implements SqlRowSet {
/**
* @see java.sql.ResultSet#getInt(String)
*/
@Override
public int getInt(String columnLabel) throws InvalidResultSetAccessException {
return getInt(findColumn(columnLabel));
}
@@ -303,6 +321,7 @@ public class ResultSetWrappingSqlRowSet implements SqlRowSet {
/**
* @see java.sql.ResultSet#getLong(int)
*/
@Override
public long getLong(int columnIndex) throws InvalidResultSetAccessException {
try {
return this.resultSet.getLong(columnIndex);
@@ -315,6 +334,7 @@ public class ResultSetWrappingSqlRowSet implements SqlRowSet {
/**
* @see java.sql.ResultSet#getLong(String)
*/
@Override
public long getLong(String columnLabel) throws InvalidResultSetAccessException {
return getLong(findColumn(columnLabel));
}
@@ -322,6 +342,7 @@ public class ResultSetWrappingSqlRowSet implements SqlRowSet {
/**
* @see java.sql.ResultSet#getObject(int, java.util.Map)
*/
@Override
public Object getObject(int i, Map<String, Class<?>> map) throws InvalidResultSetAccessException {
try {
return this.resultSet.getObject(i, map);
@@ -334,6 +355,7 @@ public class ResultSetWrappingSqlRowSet implements SqlRowSet {
/**
* @see java.sql.ResultSet#getObject(int)
*/
@Override
public Object getObject(int columnIndex) throws InvalidResultSetAccessException {
try {
return this.resultSet.getObject(columnIndex);
@@ -346,6 +368,7 @@ public class ResultSetWrappingSqlRowSet implements SqlRowSet {
/**
* @see java.sql.ResultSet#getObject(String, java.util.Map)
*/
@Override
public Object getObject(String columnLabel, Map<String, Class<?>> map) throws InvalidResultSetAccessException {
return getObject(findColumn(columnLabel), map);
}
@@ -353,6 +376,7 @@ public class ResultSetWrappingSqlRowSet implements SqlRowSet {
/**
* @see java.sql.ResultSet#getObject(String)
*/
@Override
public Object getObject(String columnLabel) throws InvalidResultSetAccessException {
return getObject(findColumn(columnLabel));
}
@@ -360,6 +384,7 @@ public class ResultSetWrappingSqlRowSet implements SqlRowSet {
/**
* @see java.sql.ResultSet#getShort(int)
*/
@Override
public short getShort(int columnIndex) throws InvalidResultSetAccessException {
try {
return this.resultSet.getShort(columnIndex);
@@ -372,6 +397,7 @@ public class ResultSetWrappingSqlRowSet implements SqlRowSet {
/**
* @see java.sql.ResultSet#getShort(String)
*/
@Override
public short getShort(String columnLabel) throws InvalidResultSetAccessException {
return getShort(findColumn(columnLabel));
}
@@ -379,6 +405,7 @@ public class ResultSetWrappingSqlRowSet implements SqlRowSet {
/**
* @see java.sql.ResultSet#getString(int)
*/
@Override
public String getString(int columnIndex) throws InvalidResultSetAccessException {
try {
return this.resultSet.getString(columnIndex);
@@ -391,6 +418,7 @@ public class ResultSetWrappingSqlRowSet implements SqlRowSet {
/**
* @see java.sql.ResultSet#getString(String)
*/
@Override
public String getString(String columnLabel) throws InvalidResultSetAccessException {
return getString(findColumn(columnLabel));
}
@@ -398,6 +426,7 @@ public class ResultSetWrappingSqlRowSet implements SqlRowSet {
/**
* @see java.sql.ResultSet#getTime(int, java.util.Calendar)
*/
@Override
public Time getTime(int columnIndex, Calendar cal) throws InvalidResultSetAccessException {
try {
return this.resultSet.getTime(columnIndex, cal);
@@ -410,6 +439,7 @@ public class ResultSetWrappingSqlRowSet implements SqlRowSet {
/**
* @see java.sql.ResultSet#getTime(int)
*/
@Override
public Time getTime(int columnIndex) throws InvalidResultSetAccessException {
try {
return this.resultSet.getTime(columnIndex);
@@ -422,6 +452,7 @@ public class ResultSetWrappingSqlRowSet implements SqlRowSet {
/**
* @see java.sql.ResultSet#getTime(String, java.util.Calendar)
*/
@Override
public Time getTime(String columnLabel, Calendar cal) throws InvalidResultSetAccessException {
return getTime(findColumn(columnLabel), cal);
}
@@ -429,6 +460,7 @@ public class ResultSetWrappingSqlRowSet implements SqlRowSet {
/**
* @see java.sql.ResultSet#getTime(String)
*/
@Override
public Time getTime(String columnLabel) throws InvalidResultSetAccessException {
return getTime(findColumn(columnLabel));
}
@@ -436,6 +468,7 @@ public class ResultSetWrappingSqlRowSet implements SqlRowSet {
/**
* @see java.sql.ResultSet#getTimestamp(int, java.util.Calendar)
*/
@Override
public Timestamp getTimestamp(int columnIndex, Calendar cal) throws InvalidResultSetAccessException {
try {
return this.resultSet.getTimestamp(columnIndex, cal);
@@ -448,6 +481,7 @@ public class ResultSetWrappingSqlRowSet implements SqlRowSet {
/**
* @see java.sql.ResultSet#getTimestamp(int)
*/
@Override
public Timestamp getTimestamp(int columnIndex) throws InvalidResultSetAccessException {
try {
return this.resultSet.getTimestamp(columnIndex);
@@ -460,6 +494,7 @@ public class ResultSetWrappingSqlRowSet implements SqlRowSet {
/**
* @see java.sql.ResultSet#getTimestamp(String, java.util.Calendar)
*/
@Override
public Timestamp getTimestamp(String columnLabel, Calendar cal) throws InvalidResultSetAccessException {
return getTimestamp(findColumn(columnLabel), cal);
}
@@ -467,6 +502,7 @@ public class ResultSetWrappingSqlRowSet implements SqlRowSet {
/**
* @see java.sql.ResultSet#getTimestamp(String)
*/
@Override
public Timestamp getTimestamp(String columnLabel) throws InvalidResultSetAccessException {
return getTimestamp(findColumn(columnLabel));
}
@@ -477,6 +513,7 @@ public class ResultSetWrappingSqlRowSet implements SqlRowSet {
/**
* @see java.sql.ResultSet#absolute(int)
*/
@Override
public boolean absolute(int row) throws InvalidResultSetAccessException {
try {
return this.resultSet.absolute(row);
@@ -489,6 +526,7 @@ public class ResultSetWrappingSqlRowSet implements SqlRowSet {
/**
* @see java.sql.ResultSet#afterLast()
*/
@Override
public void afterLast() throws InvalidResultSetAccessException {
try {
this.resultSet.afterLast();
@@ -501,6 +539,7 @@ public class ResultSetWrappingSqlRowSet implements SqlRowSet {
/**
* @see java.sql.ResultSet#beforeFirst()
*/
@Override
public void beforeFirst() throws InvalidResultSetAccessException {
try {
this.resultSet.beforeFirst();
@@ -513,6 +552,7 @@ public class ResultSetWrappingSqlRowSet implements SqlRowSet {
/**
* @see java.sql.ResultSet#first()
*/
@Override
public boolean first() throws InvalidResultSetAccessException {
try {
return this.resultSet.first();
@@ -525,6 +565,7 @@ public class ResultSetWrappingSqlRowSet implements SqlRowSet {
/**
* @see java.sql.ResultSet#getRow()
*/
@Override
public int getRow() throws InvalidResultSetAccessException {
try {
return this.resultSet.getRow();
@@ -537,6 +578,7 @@ public class ResultSetWrappingSqlRowSet implements SqlRowSet {
/**
* @see java.sql.ResultSet#isAfterLast()
*/
@Override
public boolean isAfterLast() throws InvalidResultSetAccessException {
try {
return this.resultSet.isAfterLast();
@@ -549,6 +591,7 @@ public class ResultSetWrappingSqlRowSet implements SqlRowSet {
/**
* @see java.sql.ResultSet#isBeforeFirst()
*/
@Override
public boolean isBeforeFirst() throws InvalidResultSetAccessException {
try {
return this.resultSet.isBeforeFirst();
@@ -561,6 +604,7 @@ public class ResultSetWrappingSqlRowSet implements SqlRowSet {
/**
* @see java.sql.ResultSet#isFirst()
*/
@Override
public boolean isFirst() throws InvalidResultSetAccessException {
try {
return this.resultSet.isFirst();
@@ -573,6 +617,7 @@ public class ResultSetWrappingSqlRowSet implements SqlRowSet {
/**
* @see java.sql.ResultSet#isLast()
*/
@Override
public boolean isLast() throws InvalidResultSetAccessException {
try {
return this.resultSet.isLast();
@@ -585,6 +630,7 @@ public class ResultSetWrappingSqlRowSet implements SqlRowSet {
/**
* @see java.sql.ResultSet#last()
*/
@Override
public boolean last() throws InvalidResultSetAccessException {
try {
return this.resultSet.last();
@@ -597,6 +643,7 @@ public class ResultSetWrappingSqlRowSet implements SqlRowSet {
/**
* @see java.sql.ResultSet#next()
*/
@Override
public boolean next() throws InvalidResultSetAccessException {
try {
return this.resultSet.next();
@@ -609,6 +656,7 @@ public class ResultSetWrappingSqlRowSet implements SqlRowSet {
/**
* @see java.sql.ResultSet#previous()
*/
@Override
public boolean previous() throws InvalidResultSetAccessException {
try {
return this.resultSet.previous();
@@ -621,6 +669,7 @@ public class ResultSetWrappingSqlRowSet implements SqlRowSet {
/**
* @see java.sql.ResultSet#relative(int)
*/
@Override
public boolean relative(int rows) throws InvalidResultSetAccessException {
try {
return this.resultSet.relative(rows);
@@ -633,6 +682,7 @@ public class ResultSetWrappingSqlRowSet implements SqlRowSet {
/**
* @see java.sql.ResultSet#wasNull()
*/
@Override
public boolean wasNull() throws InvalidResultSetAccessException {
try {
return this.resultSet.wasNull();

View File

@@ -55,6 +55,7 @@ public class ResultSetWrappingSqlRowSetMetaData implements SqlRowSetMetaData {
}
@Override
public String getCatalogName(int column) throws InvalidResultSetAccessException {
try {
return this.resultSetMetaData.getCatalogName(column);
@@ -64,6 +65,7 @@ public class ResultSetWrappingSqlRowSetMetaData implements SqlRowSetMetaData {
}
}
@Override
public String getColumnClassName(int column) throws InvalidResultSetAccessException {
try {
return this.resultSetMetaData.getColumnClassName(column);
@@ -73,6 +75,7 @@ public class ResultSetWrappingSqlRowSetMetaData implements SqlRowSetMetaData {
}
}
@Override
public int getColumnCount() throws InvalidResultSetAccessException {
try {
return this.resultSetMetaData.getColumnCount();
@@ -82,6 +85,7 @@ public class ResultSetWrappingSqlRowSetMetaData implements SqlRowSetMetaData {
}
}
@Override
public String[] getColumnNames() throws InvalidResultSetAccessException {
if (this.columnNames == null) {
this.columnNames = new String[getColumnCount()];
@@ -92,6 +96,7 @@ public class ResultSetWrappingSqlRowSetMetaData implements SqlRowSetMetaData {
return this.columnNames;
}
@Override
public int getColumnDisplaySize(int column) throws InvalidResultSetAccessException {
try {
return this.resultSetMetaData.getColumnDisplaySize(column);
@@ -101,6 +106,7 @@ public class ResultSetWrappingSqlRowSetMetaData implements SqlRowSetMetaData {
}
}
@Override
public String getColumnLabel(int column) throws InvalidResultSetAccessException {
try {
return this.resultSetMetaData.getColumnLabel(column);
@@ -110,6 +116,7 @@ public class ResultSetWrappingSqlRowSetMetaData implements SqlRowSetMetaData {
}
}
@Override
public String getColumnName(int column) throws InvalidResultSetAccessException {
try {
return this.resultSetMetaData.getColumnName(column);
@@ -119,6 +126,7 @@ public class ResultSetWrappingSqlRowSetMetaData implements SqlRowSetMetaData {
}
}
@Override
public int getColumnType(int column) throws InvalidResultSetAccessException {
try {
return this.resultSetMetaData.getColumnType(column);
@@ -128,6 +136,7 @@ public class ResultSetWrappingSqlRowSetMetaData implements SqlRowSetMetaData {
}
}
@Override
public String getColumnTypeName(int column) throws InvalidResultSetAccessException {
try {
return this.resultSetMetaData.getColumnTypeName(column);
@@ -137,6 +146,7 @@ public class ResultSetWrappingSqlRowSetMetaData implements SqlRowSetMetaData {
}
}
@Override
public int getPrecision(int column) throws InvalidResultSetAccessException {
try {
return this.resultSetMetaData.getPrecision(column);
@@ -146,6 +156,7 @@ public class ResultSetWrappingSqlRowSetMetaData implements SqlRowSetMetaData {
}
}
@Override
public int getScale(int column) throws InvalidResultSetAccessException {
try {
return this.resultSetMetaData.getScale(column);
@@ -155,6 +166,7 @@ public class ResultSetWrappingSqlRowSetMetaData implements SqlRowSetMetaData {
}
}
@Override
public String getSchemaName(int column) throws InvalidResultSetAccessException {
try {
return this.resultSetMetaData.getSchemaName(column);
@@ -164,6 +176,7 @@ public class ResultSetWrappingSqlRowSetMetaData implements SqlRowSetMetaData {
}
}
@Override
public String getTableName(int column) throws InvalidResultSetAccessException {
try {
return this.resultSetMetaData.getTableName(column);
@@ -173,6 +186,7 @@ public class ResultSetWrappingSqlRowSetMetaData implements SqlRowSetMetaData {
}
}
@Override
public boolean isCaseSensitive(int column) throws InvalidResultSetAccessException {
try {
return this.resultSetMetaData.isCaseSensitive(column);
@@ -182,6 +196,7 @@ public class ResultSetWrappingSqlRowSetMetaData implements SqlRowSetMetaData {
}
}
@Override
public boolean isCurrency(int column) throws InvalidResultSetAccessException {
try {
return this.resultSetMetaData.isCurrency(column);
@@ -191,6 +206,7 @@ public class ResultSetWrappingSqlRowSetMetaData implements SqlRowSetMetaData {
}
}
@Override
public boolean isSigned(int column) throws InvalidResultSetAccessException {
try {
return this.resultSetMetaData.isSigned(column);

View File

@@ -50,35 +50,43 @@ public class Jdbc4SqlXmlHandler implements SqlXmlHandler {
// Convenience methods for accessing XML content
//-------------------------------------------------------------------------
@Override
public String getXmlAsString(ResultSet rs, String columnName) throws SQLException {
return rs.getSQLXML(columnName).getString();
}
@Override
public String getXmlAsString(ResultSet rs, int columnIndex) throws SQLException {
return rs.getSQLXML(columnIndex).getString();
}
@Override
public InputStream getXmlAsBinaryStream(ResultSet rs, String columnName) throws SQLException {
return rs.getSQLXML(columnName).getBinaryStream();
}
@Override
public InputStream getXmlAsBinaryStream(ResultSet rs, int columnIndex) throws SQLException {
return rs.getSQLXML(columnIndex).getBinaryStream();
}
@Override
public Reader getXmlAsCharacterStream(ResultSet rs, String columnName) throws SQLException {
return rs.getSQLXML(columnName).getCharacterStream();
}
@Override
public Reader getXmlAsCharacterStream(ResultSet rs, int columnIndex) throws SQLException {
return rs.getSQLXML(columnIndex).getCharacterStream();
}
@Override
@SuppressWarnings("unchecked")
public Source getXmlAsSource(ResultSet rs, String columnName, Class sourceClass) throws SQLException {
return rs.getSQLXML(columnName).getSource(sourceClass != null ? sourceClass : DOMSource.class);
}
@Override
@SuppressWarnings("unchecked")
public Source getXmlAsSource(ResultSet rs, int columnIndex, Class sourceClass) throws SQLException {
return rs.getSQLXML(columnIndex).getSource(sourceClass != null ? sourceClass : DOMSource.class);
@@ -89,6 +97,7 @@ public class Jdbc4SqlXmlHandler implements SqlXmlHandler {
// Convenience methods for building XML content
//-------------------------------------------------------------------------
@Override
public SqlXmlValue newSqlXmlValue(final String value) {
return new AbstractJdbc4SqlXmlValue() {
@Override
@@ -98,6 +107,7 @@ public class Jdbc4SqlXmlHandler implements SqlXmlHandler {
};
}
@Override
public SqlXmlValue newSqlXmlValue(final XmlBinaryStreamProvider provider) {
return new AbstractJdbc4SqlXmlValue() {
@Override
@@ -107,6 +117,7 @@ public class Jdbc4SqlXmlHandler implements SqlXmlHandler {
};
}
@Override
public SqlXmlValue newSqlXmlValue(final XmlCharacterStreamProvider provider) {
return new AbstractJdbc4SqlXmlValue() {
@Override
@@ -116,6 +127,7 @@ public class Jdbc4SqlXmlHandler implements SqlXmlHandler {
};
}
@Override
public SqlXmlValue newSqlXmlValue(final Class resultClass, final XmlResultProvider provider) {
return new AbstractJdbc4SqlXmlValue() {
@Override
@@ -126,6 +138,7 @@ public class Jdbc4SqlXmlHandler implements SqlXmlHandler {
};
}
@Override
public SqlXmlValue newSqlXmlValue(final Document document) {
return new AbstractJdbc4SqlXmlValue() {
@Override
@@ -143,6 +156,7 @@ public class Jdbc4SqlXmlHandler implements SqlXmlHandler {
private SQLXML xmlObject;
@Override
public void setValue(PreparedStatement ps, int paramIndex) throws SQLException {
this.xmlObject = ps.getConnection().createSQLXML();
try {
@@ -154,6 +168,7 @@ public class Jdbc4SqlXmlHandler implements SqlXmlHandler {
ps.setSQLXML(paramIndex, this.xmlObject);
}
@Override
public void cleanup() {
try {
this.xmlObject.free();