A specialized connectionProvider class is a common class that extends the ConnectionProvider abstract class and provides the implementation of the following abstract methods:
protected abstract void init() throws Exception;
protected abstract Connection getConnection() throws SQLException;
A connectionProvider can implement the code to interact with a connection pool system.
The init method should be used to initialize the chosen data source object or the connection pool component.
Examples:
loading a specified DriverManager class
initialize a java DataSource object
initialize a connection pool object
Here's what the JakartaConnectionProvider class does:
/**
* Initialize the Jakarta Commons connection pool.
*
* @throws Exception if any error occurs
*/
protected void init() throws Exception
{
dataSource = new BasicDataSource();
dataSource.setDriverClassName(prefs.getJdbcDriver());
dataSource.setUrl(prefs.getJdbcURL());
dataSource.setUsername(prefs.getUser());
dataSource.setPassword(prefs.getPassword());
dataSource.setValidationQuery(null);
dataSource.setMaxActive(20);
dataSource.setMaxIdle(5);
dataSource.setMaxWait(-1);
}
Simply, it must return an initialized Connection object.
Example of the JakartaConnectionProvider class:
/**
* Get a JDBC Connection
*
* @return a JDBC Connection
*
* @exception SQLException Description of the Exception
*/
protected Connection getConnection() throws SQLException
{
return dataSource.getConnection();
}