|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.springframework.jdbc.datasource.AbstractDataSource org.springframework.jdbc.datasource.DriverManagerDataSource
public class DriverManagerDataSource
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.
NOTE: This class is not an actual connection pool; it does not actually pool Connections. It just serves as simple replacement for a full-blown connection pool, implementing the same standard interface, but creating new Connections on every 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 exposed as a DataSource bean in a Spring ApplicationContext via JndiObjectFactoryBean, for seamless switching to and from a local DataSource bean like this class. For tests, you can then either set up a mock JNDI environment through Spring's SimpleNamingContextBuilder, or switch the bean definition to a local DataSource (which is simpler and thus recommended).
If you need a "real" connection pool outside of a J2EE container, consider Apache's Jakarta Commons DBCP or C3P0. Commons DBCP's BasicDataSource and C3P0's ComboPooledDataSource are full connection pool beans, supporting the same basic properties as this class plus specific settings (such as minimal/maximal pool size etc).
Commons DBCP's BasicDataSource can even be used as a direct replacement for an instance of this class just by changing the class name of the bean definition to "org.apache.commons.dbcp.BasicDataSource", because the names of all common properties match exactly. Note that both BasicDataSource and ComboPooledDataSource should be defined with destroy-method="close", for immediate shutdown when the Spring ApplicationContext shuts down.
JndiObjectFactoryBean
,
SimpleNamingContextBuilder
,
BasicDataSource
,
ComboPooledDataSource
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,
Properties props)
Getting a connection using the nasty static from DriverManager is extracted into a protected method to allow for easy unit testing. |
protected Connection |
getConnectionFromDriverManager(String username,
String password)
Build properties for the DriverManager, including the given username and password (if any). |
Properties |
getConnectionProperties()
Return the connection properties to be passed to the DriverManager, if any. |
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 |
setConnectionProperties(Properties connectionProperties)
Specify arbitrary connection properties as key/value pairs, to be passed to 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 |
---|
public DriverManagerDataSource()
public DriverManagerDataSource(String driverClassName, String url, String username, String password) throws CannotGetJdbcConnectionException
driverClassName
- the JDBC driver class nameurl
- the JDBC URL to use for accessing the DriverManagerusername
- the JDBC username to use for accessing the DriverManagerpassword
- the JDBC password to use for accessing the DriverManager
CannotGetJdbcConnectionException
DriverManager.getConnection(String, String, String)
public DriverManagerDataSource(String url, String username, String password) throws CannotGetJdbcConnectionException
url
- the JDBC URL to use for accessing the DriverManagerusername
- the JDBC username to use for accessing the DriverManagerpassword
- the JDBC password to use for accessing the DriverManager
CannotGetJdbcConnectionException
DriverManager.getConnection(String, String, String)
public DriverManagerDataSource(String url) throws CannotGetJdbcConnectionException
url
- the JDBC URL to use for accessing the DriverManager
CannotGetJdbcConnectionException
DriverManager.getConnection(String)
Method Detail |
---|
public void setDriverClassName(String driverClassName) throws CannotGetJdbcConnectionException
Alternatively, consider initializing the JDBC driver yourself before instantiating this DataSource.
public String getDriverClassName()
public void setUrl(String url)
public String getUrl()
public void setUsername(String username)
public String getUsername()
public void setPassword(String password)
public String getPassword()
public void setConnectionProperties(Properties connectionProperties)
Can also contain "user" and "password" properties. However, any "username" and "password" bean properties specified on this DataSource will override the respective connection properties.
public Properties getConnectionProperties()
public Connection getConnection() throws SQLException
getConnectionFromDriverManager
,
using the default username and password of this DataSource.
SQLException
getConnectionFromDriverManager()
public Connection getConnection(String username, String password) throws SQLException
getConnectionFromDriverManager
,
using the given username and password.
SQLException
getConnectionFromDriverManager(String, String)
protected Connection getConnectionFromDriverManager() throws SQLException
SQLException
getConnectionFromDriverManager(String, String)
protected Connection getConnectionFromDriverManager(String username, String password) throws SQLException
protected Connection getConnectionFromDriverManager(String url, Properties props) throws SQLException
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |