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.
This SimpleDriverDataSource class was originally designed alongside
Apache Commons DBCP
and C3P0, featuring bean-style
BasicDataSource/ComboPooledDataSource classes with configuration
properties for local resource setups. For a modern JDBC connection pool, consider
HikariCP instead,
exposing a corresponding HikariDataSource instance to the application.
DriverManagerDataSourcelogger| Constructor and Description |
|---|
SimpleDriverDataSource()
Constructor for bean-style configuration.
|
SimpleDriverDataSource(Driver driver,
String url)
Create a new DriverManagerDataSource with the given standard Driver parameters.
|
SimpleDriverDataSource(Driver driver,
String url,
Properties conProps)
Create a new DriverManagerDataSource with the given standard Driver parameters.
|
SimpleDriverDataSource(Driver driver,
String url,
String username,
String password)
Create a new DriverManagerDataSource with the given standard Driver parameters.
|
| Modifier and Type | Method and Description |
|---|---|
protected Connection |
getConnectionFromDriver(Properties props)
Obtain a Connection using the given properties.
|
Driver |
getDriver()
Return the JDBC Driver instance to use.
|
void |
setDriver(Driver driver)
Specify the JDBC Driver instance to use.
|
void |
setDriverClass(Class<? extends Driver> driverClass)
Specify the JDBC Driver implementation class to use.
|
getCatalog, getConnection, getConnection, getConnectionFromDriver, getConnectionProperties, getPassword, getSchema, getUrl, getUsername, setCatalog, setConnectionProperties, setPassword, setSchema, setUrl, setUsernamegetLoginTimeout, getLogWriter, getParentLogger, isWrapperFor, setLoginTimeout, setLogWriter, unwrappublic SimpleDriverDataSource()
public SimpleDriverDataSource(Driver driver, String url)
driver - the JDBC Driver objecturl - the JDBC URL to use for accessing the DriverManagerDriver.connect(String, java.util.Properties)public SimpleDriverDataSource(Driver driver, String url, String username, 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(Driver driver, String url, 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(Class<? extends Driver> driverClass)
An instance of this Driver class will be created and held within the SimpleDriverDataSource.
setDriver(java.sql.Driver)public void setDriver(@Nullable Driver driver)
This allows for passing in a shared, possibly pre-configured Driver instance.
protected Connection getConnectionFromDriver(Properties props) throws SQLException
AbstractDriverBasedDataSourceTemplate method to be implemented by subclasses.
getConnectionFromDriver in class AbstractDriverBasedDataSourceprops - the merged connection propertiesSQLException - in case of failure