org.springframework.jdbc.datasource

## Class AbstractDriverBasedDataSource

- java.lang.Object
- - org.springframework.jdbc.datasource.AbstractDataSource
  - - org.springframework.jdbc.datasource.AbstractDriverBasedDataSource

- All Implemented Interfaces:
    Wrapper, CommonDataSource, DataSource
  Direct Known Subclasses:
    DriverManagerDataSource, SimpleDriverDataSource

      public abstract class AbstractDriverBasedDataSource
      extends AbstractDataSource

  Abstract base class for JDBC `DataSource` implementations that operate on a JDBC `Driver`.
  Since:
    2.5.5
  Author:
    Juergen Hoeller
  See Also:
    `SimpleDriverDataSource`, `DriverManagerDataSource`

- - ### Field Summary

    - ### Fields inherited from class org.springframework.jdbc.datasource.AbstractDataSource

      `logger`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `AbstractDriverBasedDataSource()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `Connection` | `getConnection()` This implementation delegates to `getConnectionFromDriver`, using the default username and password of this DataSource.
    `Connection` | `getConnection(String username, String password)` This implementation delegates to `getConnectionFromDriver`, using the given username and password.
    `protected abstract Connection` | `getConnectionFromDriver(Properties props)` Obtain a Connection using the given properties.
    `protected Connection` | `getConnectionFromDriver(String username, String password)` Build properties for the Driver, including the given username and password (if any), and obtain a corresponding Connection.
    `Properties` | `getConnectionProperties()` Return the connection properties to be passed to the Driver, if any.
    `String` | `getPassword()` Return the JDBC password to use for connecting through the Driver.
    `String` | `getUrl()` Return the JDBC URL to use for connecting through the Driver.
    `String` | `getUsername()` Return the JDBC username to use for connecting through the Driver.
    `void` | `setConnectionProperties(Properties connectionProperties)` Specify arbitrary connection properties as key/value pairs, to be passed to the Driver.
    `void` | `setPassword(String password)` Set the JDBC password to use for connecting through the Driver.
    `void` | `setUrl(String url)` Set the JDBC URL to use for connecting through the Driver.
    `void` | `setUsername(String username)` Set the JDBC username to use for connecting through the Driver.

    - ### Methods inherited from class org.springframework.jdbc.datasource.AbstractDataSource

      `getLoginTimeout, getLogWriter, getParentLogger, isWrapperFor, setLoginTimeout, setLogWriter, unwrap`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### AbstractDriverBasedDataSource

          public AbstractDriverBasedDataSource()

  - ### Method Detail

    - #### setUrl

          public void setUrl(String url)

      Set the JDBC URL to use for connecting through the Driver.
      See Also:
        `Driver.connect(String, java.util.Properties)`

    - #### getUrl

          public String getUrl()

      Return the JDBC URL to use for connecting through the Driver.

    - #### setUsername

          public void setUsername(String username)

      Set the JDBC username to use for connecting through the Driver.
      See Also:
        `Driver.connect(String, java.util.Properties)`

    - #### getUsername

          public String getUsername()

      Return the JDBC username to use for connecting through the Driver.

    - #### setPassword

          public void setPassword(String password)

      Set the JDBC password to use for connecting through the Driver.
      See Also:
        `Driver.connect(String, java.util.Properties)`

    - #### getPassword

          public String getPassword()

      Return the JDBC password to use for connecting through the Driver.

    - #### setConnectionProperties

          public void setConnectionProperties(Properties connectionProperties)

      Specify arbitrary connection properties as key/value pairs, to be passed to the Driver.

      Can also contain "user" and "password" properties. However, any "username" and "password" bean properties specified on this DataSource will override the corresponding connection properties.

      See Also:
        `Driver.connect(String, java.util.Properties)`

    - #### getConnectionProperties

          public Properties getConnectionProperties()

      Return the connection properties to be passed to the Driver, if any.

    - #### getConnection

          public Connection getConnection()
                                   throws SQLException

      This implementation delegates to `getConnectionFromDriver`, using the default username and password of this DataSource.
      Throws:
        `SQLException`
      See Also:
        `getConnectionFromDriver(String, String)`, `setUsername(java.lang.String)`, `setPassword(java.lang.String)`

    - #### getConnection

          public Connection getConnection(String username,
                                 String password)
                                   throws SQLException

      This implementation delegates to `getConnectionFromDriver`, using the given username and password.
      Throws:
        `SQLException`
      See Also:
        `getConnectionFromDriver(String, String)`

    - #### getConnectionFromDriver

          protected Connection getConnectionFromDriver(String username,
                                           String password)
                                                throws SQLException

      Build properties for the Driver, including the given username and password (if any), and obtain a corresponding Connection.
      Parameters:
        `username` - the name of the user
        `password` - the password to use
      Returns:
        the obtained Connection
      Throws:
        `SQLException` - in case of failure
      See Also:
        `Driver.connect(String, java.util.Properties)`

    - #### getConnectionFromDriver

          protected abstract Connection getConnectionFromDriver(Properties props)
                                                         throws SQLException

      Obtain a Connection using the given properties.

      Template method to be implemented by subclasses.

      Parameters:
        `props` - the merged connection properties
      Returns:
        the obtained Connection
      Throws:
        `SQLException` - in case of failure