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.
DriverManagerDataSource
logger
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, setUsername
getLoginTimeout, getLogWriter, getParentLogger, isWrapperFor, setLoginTimeout, setLogWriter, unwrap
public 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
AbstractDriverBasedDataSource
Template method to be implemented by subclasses.
getConnectionFromDriver
in class AbstractDriverBasedDataSource
props
- the merged connection propertiesSQLException
- in case of failure