|
[Deprecated API] | ||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | CURRENT API | |||||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||
java.lang.Object | +--com.interface21.jdbc.datasource.DataSourceUtils
Class containing static methods to obtain connections from JNDI and close connections if necessary. Has support for thread-bound connections, for example for using 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 |
closeConnectionIfNecessary(java.sql.Connection con,
javax.sql.DataSource ds)
Close the given connection if necessary, i.e. if it is not bound to the thread and it is not created by a SmartDataSource returning shouldClose=false. |
static java.sql.Connection |
getCloseSuppressingConnectionProxy(java.sql.Connection source)
Wrap the given connection with a proxy that delegates every method call to it but suppresses close calls. |
static java.sql.Connection |
getConnection(javax.sql.DataSource ds)
Get a connection from the given DataSource. |
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. adding the prefix "java:comp/env/" to the JNDI name if it doesn't already contain it. |
static javax.sql.DataSource |
getDataSourceFromJndi(java.lang.String jndiName,
boolean inContainer)
Look up the specified DataSource in JNDI, explicitly specifying if the lookup occurs in a J2EE container. |
static ThreadObjectManager |
getThreadObjectManager()
Return the thread object manager for data sources, keeping a DataSource/ConnectionHolder map per thread for JDBC transactions. |
static boolean |
isConnectionBoundToThread(java.sql.Connection con,
javax.sql.DataSource ds)
Return if the given Connection is bound to the current thread, for the given DataSource. |
| 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 ThreadObjectManager getThreadObjectManager()
getConnection(javax.sql.DataSource),
DataSourceTransactionManager
public static boolean isConnectionBoundToThread(java.sql.Connection con,
javax.sql.DataSource ds)
con - JDBC Connection that should be checkedds - DataSource that the Connection was created with
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 DataSourceCannotGetJdbcConnectionException - if the data source cannot be locatedgetDataSourceFromJndi(String,boolean)
public static javax.sql.DataSource getDataSourceFromJndi(java.lang.String jndiName,
boolean inContainer)
throws CannotGetJdbcConnectionException
jndiName - jndiName of the DataSourceinContainer - 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 located
public 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.
ds - DataSource to get connection fromCannotGetJdbcConnectionException - if we fail to get a connection from the given DataSourcegetThreadObjectManager(),
DataSourceTransactionManager
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 (can be null)public static java.sql.Connection getCloseSuppressingConnectionProxy(java.sql.Connection source)
source - original connectionSingleConnectionDataSource
|
[Deprecated API] | ||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | CURRENT API | |||||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||