|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.springframework.jdbc.datasource.DataSourceUtils
Helper class that provides static methods to obtain connections from JNDI and close connections if necessary. Has support for thread-bound connections, e.g. for use with DataSourceTransactionManager.
Note: The getDataSourceFromJndi methods are targetted at applications that do not use a BeanFactory resp. an ApplicationContext. With the latter, it is preferable to preconfigure your beans or even JdbcTemplate instances in the factory: JndiObjectFactoryBean can be used to fetch a DataSource from JNDI and give the DataSource bean reference to other beans. Switching to another DataSource is just a matter of configuration then: You can even replace the definition of the FactoryBean with a non-JNDI DataSource!
DataSourceTransactionManager
,
JndiObjectFactoryBean
Constructor Summary | |
DataSourceUtils()
|
Method Summary | |
static void |
applyTransactionTimeout(java.sql.Statement stmt,
javax.sql.DataSource ds)
Apply the current transaction timeout, if any, to the given JDBC Statement object. |
static void |
closeConnectionIfNecessary(java.sql.Connection con,
javax.sql.DataSource ds)
Close the given connection if necessary, i.e. |
static java.sql.Connection |
getConnection(javax.sql.DataSource ds)
Get a connection from the given DataSource. |
static java.sql.Connection |
getConnection(javax.sql.DataSource ds,
boolean allowSynchronization)
|
static javax.sql.DataSource |
getDataSourceFromJndi(java.lang.String jndiName)
Look up the specified DataSource in JNDI, assuming that the lookup occurs in a J2EE container, i.e. |
static javax.sql.DataSource |
getDataSourceFromJndi(java.lang.String jndiName,
boolean resourceRef)
Look up the specified DataSource in JNDI, explicitly specifying if the lookup occurs in a J2EE container. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
public DataSourceUtils()
Method Detail |
public static javax.sql.DataSource getDataSourceFromJndi(java.lang.String jndiName) throws CannotGetJdbcConnectionException
Use getDataSourceFromJndi(jndiName,false) in case of a custom JNDI name.
jndiName
- jndiName of the DataSource
CannotGetJdbcConnectionException
- if the data source cannot be locatedgetDataSourceFromJndi(String, boolean)
public static javax.sql.DataSource getDataSourceFromJndi(java.lang.String jndiName, boolean resourceRef) throws CannotGetJdbcConnectionException
jndiName
- jndiName of the DataSourceresourceRef
- if the lookup occurs in a J2EE container, i.e. if the prefix
"java:comp/env/" needs to be added if the JNDI name doesn't already contain it.
CannotGetJdbcConnectionException
- if the data source cannot be locatedpublic static java.sql.Connection getConnection(javax.sql.DataSource ds) throws CannotGetJdbcConnectionException
Is aware of a respective connection bound to the current thread, for example when using DataSourceTransactionManager. Will bind a Connection to the thread if transaction synchronization is active (e.g. if in a JTA transaction).
ds
- DataSource to get connection from
CannotGetJdbcConnectionException
- if the attempt to get a Connection failedTransactionSynchronizationManager
,
DataSourceTransactionManager
public static java.sql.Connection getConnection(javax.sql.DataSource ds, boolean allowSynchronization) throws CannotGetJdbcConnectionException
CannotGetJdbcConnectionException
public static void applyTransactionTimeout(java.sql.Statement stmt, javax.sql.DataSource ds) throws java.sql.SQLException
stmt
- the JDBC Statement objectds
- DataSource that the connection came from
java.sql.SQLException
public static void closeConnectionIfNecessary(java.sql.Connection con, javax.sql.DataSource ds) throws CannotCloseJdbcConnectionException
con
- connection to close if necessary
(if this is null, the call will be ignored)ds
- DataSource that the connection came from
CannotCloseJdbcConnectionException
- if the attempt to close the
Connection failedSmartDataSource.shouldClose(java.sql.Connection)
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |