public class WebSphereDataSourceAdapter extends IsolationLevelDataSourceAdapter
DataSource implementation that delegates all calls to a WebSphere
 target DataSource, typically obtained from JNDI, applying a current
 isolation level and/or current user credentials to every Connection obtained
 from it.
 Uses IBM-specific API to get a JDBC Connection with a specific isolation
 level (and read-only flag) from a WebSphere DataSource
 (IBM code example).
 Supports the transaction-specific isolation level exposed by
 TransactionSynchronizationManager.getCurrentTransactionIsolationLevel().
 It's also possible to specify a default isolation level, to be applied when the
 current Spring-managed transaction does not define a specific isolation level.
 
Usage example, defining the target DataSource as an inner-bean JNDI lookup (of course, you can link to any WebSphere DataSource through a bean reference):
 <bean id="myDataSource" class="org.springframework.jdbc.datasource.WebSphereDataSourceAdapter">
   <property name="targetDataSource">
     <bean class="org.springframework.jndi.JndiObjectFactoryBean">
       <property name="jndiName" value="jdbc/myds"/>
     </bean>
   </property>
 </bean>
 Thanks to Ricardo Olivieri for submitting the original implementation
 of this approach!JDBCConnectionSpec, 
WSDataSource, 
TransactionSynchronizationManager.getCurrentTransactionIsolationLevel(), 
TransactionSynchronizationManager.isCurrentTransactionReadOnly()| Constructor and Description | 
|---|
| WebSphereDataSourceAdapter()This constructor retrieves the WebSphere JDBC connection spec API,
 so we can get obtain specific WebSphere Connections using reflection. | 
| Modifier and Type | Method and Description | 
|---|---|
| void | afterPropertiesSet()Checks that the specified 'targetDataSource' actually is
 a WebSphere WSDataSource. | 
| protected Object | createConnectionSpec(Integer isolationLevel,
                    Boolean readOnlyFlag,
                    String username,
                    String password)Create a WebSphere  JDBCConnectionSpecobject for the given characteristics. | 
| protected Connection | doGetConnection(String username,
               String password)Builds a WebSphere JDBCConnectionSpec object for the current settings
 and calls  WSDataSource.getConnection(JDBCConnectionSpec). | 
getCurrentIsolationLevel, getCurrentReadOnlyFlag, getIsolationLevel, setIsolationLevel, setIsolationLevelNamegetConnection, getConnection, removeCredentialsFromCurrentThread, setCatalog, setCredentialsForCurrentThread, setPassword, setSchema, setUsernamegetLoginTimeout, getLogWriter, getParentLogger, getTargetDataSource, isWrapperFor, obtainTargetDataSource, setLoginTimeout, setLogWriter, setTargetDataSource, unwrapprotected final Log logger
public WebSphereDataSourceAdapter()
public void afterPropertiesSet()
afterPropertiesSet in interface InitializingBeanafterPropertiesSet in class DelegatingDataSourceprotected Connection doGetConnection(@Nullable String username, @Nullable String password) throws SQLException
WSDataSource.getConnection(JDBCConnectionSpec).doGetConnection in class IsolationLevelDataSourceAdapterusername - the username to usepassword - the password to useSQLExceptioncreateConnectionSpec(java.lang.Integer, java.lang.Boolean, java.lang.String, java.lang.String), 
WSDataSourceprotected Object createConnectionSpec(@Nullable Integer isolationLevel, @Nullable Boolean readOnlyFlag, @Nullable String username, @Nullable String password) throws SQLException
JDBCConnectionSpec object for the given characteristics.
 The default implementation uses reflection to apply the given settings. Can be overridden in subclasses to customize the JDBCConnectionSpec object (JDBCConnectionSpec javadoc; IBM developerWorks article).
isolationLevel - the isolation level to apply (or null if none)readOnlyFlag - the read-only flag to apply (or null if none)username - the username to apply (null or empty indicates the default)password - the password to apply (may be null or empty)SQLException - if thrown by JDBCConnectionSpec API methodsJDBCConnectionSpec