Class JDBCResourceFactory

java.lang.Object
com.gargoylesoftware.base.resource.ResourceFactory
com.gargoylesoftware.base.resource.jdbc.JDBCResourceFactory

public class JDBCResourceFactory extends ResourceFactory
A ResourceFactory for JDBC connections
Version:
$Revision: 1.4 $
  • Field Details

    • databaseName_

      private final String databaseName_
    • userName_

      private final String userName_
    • password_

      private final String password_
  • Constructor Details

    • JDBCResourceFactory

      public JDBCResourceFactory(String databaseName, String userName, String password) throws SQLException
      Create the factory. The database driver must have been registered prior to creating an instance of this class. This constructor will always try to allocate one connection right away to ensure that the database information was entered correctly.
      Parameters:
      databaseName - The name of the database
      userName - The user id that we will use to connect to the database
      password - The password for the specified user
      Throws:
      SQLException - If an error occurs
    • JDBCResourceFactory

      public JDBCResourceFactory(String databaseName, String userName, String password, boolean verifyThatConnectionCanBeOpened) throws SQLException
      Create the factory. The database driver must have been registered prior to creating an instance of this class.
      Parameters:
      databaseName - The name of the database
      userName - The user id that we will use to connect to the database
      password - The password for the specified user
      verifyThatConnectionCanBeOpened - If true than one connection will be immediately allocated and then freed from the specified database
      Throws:
      SQLException - If an error occurs
  • Method Details

    • reinitializeResourceIfPossible

      public boolean reinitializeResourceIfPossible(ManagedResource resource)
      Reinitialize the resource to a known state. This is required for resource pooling as all resources being returned from a pool must have been initialized to a known state.
      Specified by:
      reinitializeResourceIfPossible in class ResourceFactory
      Parameters:
      resource - the resource to reinitialize
      Returns:
      true if the resource was successfully reinitialized
    • getResourceImpl

      protected ManagedResource getResourceImpl(ResourceManager resourceManager) throws Exception
      Allocate a resource for the specified store
      Specified by:
      getResourceImpl in class ResourceFactory
      Parameters:
      resourceManager - The resource manager that owns this factory
      Returns:
      The new resource
      Throws:
      Exception - If an error occurs
    • releaseResourceImpl

      protected void releaseResourceImpl(ResourceManager resourceManager, ManagedResource resource) throws Exception
      Release the specified resource. It must have been allocated by the specified store
      Specified by:
      releaseResourceImpl in class ResourceFactory
      Parameters:
      resourceManager - The manager that is controlling this factory
      resource - The resource that we are releasing
      Throws:
      Exception - If an error occurs
    • allocateRealConnection

      protected final Connection allocateRealConnection(String databaseName, String userName, String password) throws SQLException
      Allocate a real database connection from the DriverManager
      Parameters:
      databaseName - The name of the database
      userName - The user id that we will use to connect to the database
      password - The password for the specified user
      Returns:
      A new connection
      Throws:
      SQLException - If an error occurs
    • freeRealConnection

      protected final void freeRealConnection(Connection connection) throws SQLException
      Free a real database connection
      Parameters:
      connection - The connection to release
      Throws:
      SQLException - If an error occurs
    • ensureDatabaseCanBeOpened

      private void ensureDatabaseCanBeOpened() throws SQLException
      Throws:
      SQLException