org.springframework.jdbc.datasource
Interface SmartDataSource

All Superinterfaces:
javax.sql.CommonDataSource, javax.sql.DataSource, java.sql.Wrapper
All Known Implementing Classes:
SingleConnectionDataSource

public interface SmartDataSource
extends javax.sql.DataSource

Extension of the javax.sql.DataSource interface, to be implemented by special DataSources that return JDBC Connections in an unwrapped fashion.

Classes using this interface can query whether or not the Connection should be closed after an operation. Spring's DataSourceUtils and JdbcTemplate classes automatically perform such a check.

Author:
Rod Johnson, Juergen Hoeller
See Also:
SingleConnectionDataSource.shouldClose(java.sql.Connection), DataSourceUtils.releaseConnection(java.sql.Connection, javax.sql.DataSource), JdbcTemplate

Method Summary
 boolean shouldClose(java.sql.Connection con)
          Should we close this Connection, obtained from this DataSource?
 
Methods inherited from interface javax.sql.DataSource
getConnection, getConnection
 
Methods inherited from interface javax.sql.CommonDataSource
getLoginTimeout, getLogWriter, setLoginTimeout, setLogWriter
 
Methods inherited from interface java.sql.Wrapper
isWrapperFor, unwrap
 

Method Detail

shouldClose

boolean shouldClose(java.sql.Connection con)
Should we close this Connection, obtained from this DataSource?

Code that uses Connections from a SmartDataSource should always perform a check via this method before invoking close().

Note that the JdbcTemplate class in the 'jdbc.core' package takes care of releasing JDBC Connections, freeing application code of this responsibility.

Parameters:
con - the Connection to check
Returns:
whether the given Connection should be closed
See Also:
Connection.close()