public class SimpleDriverDataSource extends AbstractDriverBasedDataSource
DataSource
interface,
configuring a plain old JDBC Driver
via bean properties, and
returning a new Connection
from 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.
In a Java EE 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.
If you need a "real" connection pool outside of a Java EE container, consider Apache 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).
DriverManagerDataSource
logger
Constructor and Description |
---|
SimpleDriverDataSource()
Constructor for bean-style configuration.
|
SimpleDriverDataSource(java.sql.Driver driver,
java.lang.String url)
Create a new DriverManagerDataSource with the given standard Driver parameters.
|
SimpleDriverDataSource(java.sql.Driver driver,
java.lang.String url,
java.util.Properties conProps)
Create a new DriverManagerDataSource with the given standard Driver parameters.
|
SimpleDriverDataSource(java.sql.Driver driver,
java.lang.String url,
java.lang.String username,
java.lang.String password)
Create a new DriverManagerDataSource with the given standard Driver parameters.
|
Modifier and Type | Method and Description |
---|---|
protected java.sql.Connection |
getConnectionFromDriver(java.util.Properties props)
Obtain a Connection using the given properties.
|
java.sql.Driver |
getDriver()
Return the JDBC Driver instance to use.
|
void |
setDriver(java.sql.Driver driver)
Specify the JDBC Driver instance to use.
|
void |
setDriverClass(java.lang.Class<? extends java.sql.Driver> driverClass)
Specify the JDBC Driver implementation class to use.
|
getCatalog, getConnection, getConnection, getConnectionFromDriver, getConnectionProperties, getPassword, getSchema, getUrl, getUsername, setCatalog, setConnectionProperties, setPassword, setSchema, setUrl, setUsername
getLoginTimeout, getLogWriter, getParentLogger, isWrapperFor, setLoginTimeout, setLogWriter, unwrap
public SimpleDriverDataSource()
public SimpleDriverDataSource(java.sql.Driver driver, java.lang.String url)
driver
- the JDBC Driver objecturl
- the JDBC URL to use for accessing the DriverManagerDriver.connect(String, java.util.Properties)
public SimpleDriverDataSource(java.sql.Driver driver, java.lang.String url, java.lang.String username, java.lang.String password)
driver
- the JDBC Driver objecturl
- 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 DriverManagerDriver.connect(String, java.util.Properties)
public SimpleDriverDataSource(java.sql.Driver driver, java.lang.String url, java.util.Properties conProps)
driver
- the JDBC Driver objecturl
- the JDBC URL to use for accessing the DriverManagerconProps
- the JDBC connection propertiesDriver.connect(String, java.util.Properties)
public void setDriverClass(java.lang.Class<? extends java.sql.Driver> driverClass)
An instance of this Driver class will be created and held within the SimpleDriverDataSource.
setDriver(java.sql.Driver)
public void setDriver(@Nullable java.sql.Driver driver)
This allows for passing in a shared, possibly pre-configured Driver instance.
@Nullable public java.sql.Driver getDriver()
protected java.sql.Connection getConnectionFromDriver(java.util.Properties props) throws java.sql.SQLException
AbstractDriverBasedDataSource
Template method to be implemented by subclasses.
getConnectionFromDriver
in class AbstractDriverBasedDataSource
props
- the merged connection propertiesjava.sql.SQLException
- in case of failure