Class SimpleDriverDataSource

All Implemented Interfaces:
Wrapper, CommonDataSource, DataSource

public class SimpleDriverDataSource extends AbstractDriverBasedDataSource
Simple implementation of the standard JDBC 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 Jakarta 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.

Since:
2.5.5
Author:
Juergen Hoeller
See Also:
  • Constructor Details

    • SimpleDriverDataSource

      public SimpleDriverDataSource()
      Constructor for bean-style configuration.
    • SimpleDriverDataSource

      public SimpleDriverDataSource(Driver driver, String url)
      Create a new DriverManagerDataSource with the given standard Driver parameters.
      Parameters:
      driver - the JDBC Driver object
      url - the JDBC URL to use for accessing the DriverManager
      See Also:
    • SimpleDriverDataSource

      public SimpleDriverDataSource(Driver driver, String url, String username, String password)
      Create a new DriverManagerDataSource with the given standard Driver parameters.
      Parameters:
      driver - the JDBC Driver object
      url - the JDBC URL to use for accessing the DriverManager
      username - the JDBC username to use for accessing the DriverManager
      password - the JDBC password to use for accessing the DriverManager
      See Also:
    • SimpleDriverDataSource

      public SimpleDriverDataSource(Driver driver, String url, Properties conProps)
      Create a new DriverManagerDataSource with the given standard Driver parameters.
      Parameters:
      driver - the JDBC Driver object
      url - the JDBC URL to use for accessing the DriverManager
      conProps - the JDBC connection properties
      See Also:
  • Method Details

    • setDriverClass

      public void setDriverClass(Class<? extends Driver> driverClass)
      Specify the JDBC Driver implementation class to use.

      An instance of this Driver class will be created and held within the SimpleDriverDataSource.

      See Also:
    • setDriver

      public void setDriver(@Nullable Driver driver)
      Specify the JDBC Driver instance to use.

      This allows for passing in a shared, possibly pre-configured Driver instance.

      See Also:
    • getDriver

      public @Nullable Driver getDriver()
      Return the JDBC Driver instance to use.
    • getConnectionFromDriver

      protected Connection getConnectionFromDriver(Properties props) throws SQLException
      Description copied from class: AbstractDriverBasedDataSource
      Obtain a Connection using the given properties.

      Template method to be implemented by subclasses.

      Specified by:
      getConnectionFromDriver in class AbstractDriverBasedDataSource
      Parameters:
      props - the merged connection properties
      Returns:
      the obtained Connection
      Throws:
      SQLException - in case of failure