org.springframework.jdbc.datasource
Class DriverManagerDataSource

java.lang.Object
  extended by org.springframework.jdbc.datasource.AbstractDataSource
      extended by org.springframework.jdbc.datasource.DriverManagerDataSource
All Implemented Interfaces:
DataSource
Direct Known Subclasses:
SingleConnectionDataSource

public class DriverManagerDataSource
extends AbstractDataSource

Simple implementation of the standard JDBC DataSource interface, configuring a plain old JDBC Driver via bean properties, and returning a new Connection for every getConnection call.

Useful for test or standalone environments outside of a J2EE container, either as a DataSource bean in a respective ApplicationContext, or in conjunction with a simple JNDI environment. Pool-assuming Connection.close() calls will simply close the Connection, so any DataSource-aware persistence code should work.

In a J2EE container, it is recommended to use a JNDI DataSource provided by the container. Such a DataSource can be exported as a DataSource bean in an ApplicationContext via JndiObjectFactoryBean, for seamless switching to and from a local DataSource bean like this class.

If you need a "real" connection pool outside of a J2EE container, consider Apache's Jakarta Commons DBCP. Its BasicDataSource is a full connection pool bean, supporting the same basic properties as this class plus specific settings. It can be used as a replacement for an instance of this class just by changing the class name of the bean definition to "org.apache.commons.dbcp.BasicDataSource".

Since:
14.03.2003
Author:
Juergen Hoeller
See Also:
JndiObjectFactoryBean, SimpleNamingContextBuilder, BasicDataSource

Field Summary
 
Fields inherited from class org.springframework.jdbc.datasource.AbstractDataSource
logger
 
Constructor Summary
DriverManagerDataSource()
          Constructor for bean-style configuration.
DriverManagerDataSource(String url)
          Create a new DriverManagerDataSource with the given JDBC URL, not specifying a username or password for JDBC access.
DriverManagerDataSource(String url, String username, String password)
          Create a new DriverManagerDataSource with the given standard DriverManager parameters.
DriverManagerDataSource(String driverClassName, String url, String username, String password)
          Create a new DriverManagerDataSource with the given standard DriverManager parameters.
 
Method Summary
 Connection getConnection()
          This implementation delegates to getConnectionFromDriverManager, using the default username and password of this DataSource.
 Connection getConnection(String username, String password)
          This implementation delegates to getConnectionFromDriverManager, using the given username and password.
protected  Connection getConnectionFromDriverManager()
          Get a Connection from the DriverManager, using the default username and password of this DataSource.
protected  Connection getConnectionFromDriverManager(String url, String username, String password)
          Getting a connection using the nasty static from DriverManager is extracted into a protected method to allow for easy unit testing.
 String getDriverClassName()
          Return the JDBC driver class name, if any.
 String getPassword()
          Return the JDBC password to use for accessing the DriverManager.
 String getUrl()
          Return the JDBC URL to use for accessing the DriverManager.
 String getUsername()
          Return the JDBC username to use for accessing the DriverManager.
 void setDriverClassName(String driverClassName)
          Set the JDBC driver class name.
 void setPassword(String password)
          Set the JDBC password to use for accessing the DriverManager.
 void setUrl(String url)
          Set the JDBC URL to use for accessing the DriverManager.
 void setUsername(String username)
          Set the JDBC username to use for accessing the DriverManager.
 
Methods inherited from class org.springframework.jdbc.datasource.AbstractDataSource
getLoginTimeout, getLogWriter, setLoginTimeout, setLogWriter
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DriverManagerDataSource

public DriverManagerDataSource()
Constructor for bean-style configuration.


DriverManagerDataSource

public DriverManagerDataSource(String driverClassName,
                               String url,
                               String username,
                               String password)
                        throws CannotGetJdbcConnectionException
Create a new DriverManagerDataSource with the given standard DriverManager parameters.

Parameters:
driverClassName - the JDBC driver class name
url - the JDBC URL to use for accessing the DriverManager
username - the JDBC username to use for accessing the DriverManager
password - the JDBC password to use for accessing the DriverManager
Throws:
CannotGetJdbcConnectionException
See Also:
DriverManager.getConnection(String, String, String)

DriverManagerDataSource

public DriverManagerDataSource(String url,
                               String username,
                               String password)
                        throws CannotGetJdbcConnectionException
Create a new DriverManagerDataSource with the given standard DriverManager parameters.

Parameters:
url - the JDBC URL to use for accessing the DriverManager
username - the JDBC username to use for accessing the DriverManager
password - the JDBC password to use for accessing the DriverManager
Throws:
CannotGetJdbcConnectionException
See Also:
DriverManager.getConnection(String, String, String)

DriverManagerDataSource

public DriverManagerDataSource(String url)
                        throws CannotGetJdbcConnectionException
Create a new DriverManagerDataSource with the given JDBC URL, not specifying a username or password for JDBC access.

Parameters:
url - the JDBC URL to use for accessing the DriverManager
Throws:
CannotGetJdbcConnectionException
See Also:
DriverManager.getConnection(String)
Method Detail

setDriverClassName

public void setDriverClassName(String driverClassName)
                        throws CannotGetJdbcConnectionException
Set the JDBC driver class name. This driver will get initialized on startup, registering itself with the JDK's DriverManager.

Alternatively, consider initializing the JDBC driver yourself before instantiating this DataSource.

Throws:
CannotGetJdbcConnectionException
See Also:
Class.forName(String), DriverManager.registerDriver(java.sql.Driver)

getDriverClassName

public String getDriverClassName()
Return the JDBC driver class name, if any.


setUrl

public void setUrl(String url)
Set the JDBC URL to use for accessing the DriverManager.

See Also:
DriverManager.getConnection(String, String, String)

getUrl

public String getUrl()
Return the JDBC URL to use for accessing the DriverManager.


setUsername

public void setUsername(String username)
Set the JDBC username to use for accessing the DriverManager.

See Also:
DriverManager.getConnection(String, String, String)

getUsername

public String getUsername()
Return the JDBC username to use for accessing the DriverManager.


setPassword

public void setPassword(String password)
Set the JDBC password to use for accessing the DriverManager.

See Also:
DriverManager.getConnection(String, String, String)

getPassword

public String getPassword()
Return the JDBC password to use for accessing the DriverManager.


getConnection

public Connection getConnection()
                         throws SQLException
This implementation delegates to getConnectionFromDriverManager, using the default username and password of this DataSource.

Throws:
SQLException
See Also:
getConnectionFromDriverManager()

getConnection

public Connection getConnection(String username,
                                String password)
                         throws SQLException
This implementation delegates to getConnectionFromDriverManager, using the given username and password.

Throws:
SQLException
See Also:
getConnectionFromDriverManager(String, String, String)

getConnectionFromDriverManager

protected Connection getConnectionFromDriverManager()
                                             throws SQLException
Get a Connection from the DriverManager, using the default username and password of this DataSource.

Throws:
SQLException
See Also:
getConnectionFromDriverManager(String, String, String)

getConnectionFromDriverManager

protected Connection getConnectionFromDriverManager(String url,
                                                    String username,
                                                    String password)
                                             throws SQLException
Getting a connection using the nasty static from DriverManager is extracted into a protected method to allow for easy unit testing.

Throws:
SQLException
See Also:
DriverManager.getConnection(String, String, String)


Copyright (c) 2002-2005 The Spring Framework Project.