| java.lang.Object org.springframework.jdbc.datasource.AbstractDataSource org.springframework.jdbc.datasource.DriverManagerDataSource
All known Subclasses: org.springframework.jdbc.datasource.SingleConnectionDataSource,
DriverManagerDataSource | public class DriverManagerDataSource extends AbstractDataSource (Code) | | 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 corresponding 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.
author: Juergen Hoeller since: 14.03.2003 See Also: org.springframework.jndi.JndiObjectFactoryBean See Also: org.springframework.mock.jndi.SimpleNamingContextBuilder See Also: org.apache.commons.dbcp.BasicDataSource See Also: com.mchange.v2.c3p0.ComboPooledDataSource |
Method Summary | |
public Connection | getConnection() This implementation delegates to getConnectionFromDriverManager ,
using the default username and password of this DataSource. | public 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 username, String password) Build properties for the DriverManager, including the given username
and password (if any). | 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. | public Properties | getConnectionProperties() Return the connection properties to be passed to the DriverManager, if any. | public String | getDriverClassName() Return the JDBC driver class name, if any. | public String | getPassword() Return the JDBC password to use for accessing the DriverManager. | public String | getUrl() Return the JDBC URL to use for accessing the DriverManager. | public String | getUsername() Return the JDBC username to use for accessing the DriverManager. | public void | setConnectionProperties(Properties connectionProperties) Specify arbitrary connection properties as key/value pairs,
to be passed to the DriverManager.
Can also contain "user" and "password" properties. | public void | setDriverClassName(String driverClassName) Set the JDBC driver class name. | public void | setPassword(String password) Set the JDBC password to use for accessing the DriverManager. | public void | setUrl(String url) Set the JDBC URL to use for accessing the DriverManager. | public void | setUsername(String username) Set the JDBC username to use for accessing the DriverManager. |
DriverManagerDataSource | public DriverManagerDataSource()(Code) | | Constructor for bean-style configuration.
|
DriverManagerDataSource | public DriverManagerDataSource(String driverClassName, String url, String username, String password) throws CannotGetJdbcConnectionException(Code) | | Create a new DriverManagerDataSource with the given standard
DriverManager parameters.
Parameters: driverClassName - the JDBC driver class name Parameters: url - the JDBC URL to use for accessing the DriverManager Parameters: username - the JDBC username to use for accessing the DriverManager Parameters: password - the JDBC password to use for accessing the DriverManager See Also: java.sql.DriverManager.getConnection(StringStringString) |
getConnectionProperties | public Properties getConnectionProperties()(Code) | | Return the connection properties to be passed to the DriverManager, if any.
|
getDriverClassName | public String getDriverClassName()(Code) | | Return the JDBC driver class name, if any.
|
getPassword | public String getPassword()(Code) | | Return the JDBC password to use for accessing the DriverManager.
|
getUrl | public String getUrl()(Code) | | Return the JDBC URL to use for accessing the DriverManager.
|
getUsername | public String getUsername()(Code) | | Return the JDBC username to use for accessing the DriverManager.
|
setConnectionProperties | public void setConnectionProperties(Properties connectionProperties)(Code) | | Specify arbitrary connection properties as key/value pairs,
to be passed to the DriverManager.
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: java.sql.DriverManager.getConnection(Stringjava.util.Properties) |
Fields inherited from org.springframework.jdbc.datasource.AbstractDataSource | final protected Log logger(Code)(Java Doc)
|
|
|