## 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
`AbstractDriverBasedDataSource()`

Method Summary
`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, 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