Class DatabaseConnection

    • Constructor Detail

      • DatabaseConnection

        public DatabaseConnection()
    • Method Detail

      • initConnection

        protected final void initConnection()
                                     throws CoreException

        Initialisation ensures that the configured driver implementation is available for use. It does not perform connection verification. This is done by start or upon the first call to prepareStatement()

        Specified by:
        initConnection in class AdaptrisConnectionImp
        Throws:
        CoreException - if the driver implementation was not available.
      • loadDriverClass

        protected static void loadDriverClass​(java.lang.String clazz)
      • setAutoCommit

        public void setAutoCommit​(java.lang.Boolean b)

        Sets whether to auto-commit.

        Parameters:
        b - whether to auto-commit; default is true.
      • getAutoCommit

        public java.lang.Boolean getAutoCommit()

        Returns whether to auto-commit.

        Returns:
        whether to auto-commit
      • autoCommit

        public boolean autoCommit()
      • setDebugMode

        public void setDebugMode​(java.lang.Boolean dbg)

        Set this connection's debug mode.

        In debug mode there is additional logging for reconnection attempts.

        Parameters:
        dbg - this connection's debug mode
      • getDebugMode

        public java.lang.Boolean getDebugMode()

        Returns this connection's debug mode.

        Returns:
        this connection's debug mode
      • debugMode

        public boolean debugMode()
      • asDataSource

        public javax.sql.DataSource asDataSource()
                                          throws java.sql.SQLException
        Expose this DatabaseConnection as a DataSource
        Returns:
        a DataSource implementation
        Throws:
        java.sql.SQLException
        See Also:
        DataSource
      • connect

        public final java.sql.Connection connect()
                                          throws java.sql.SQLException

        Returns the underlying SQLConnection.

        Returns:
        the underlying SQLConnection
        Throws:
        java.sql.SQLException - if the connection was not valid, and reconnection failed
      • makeConnection

        protected abstract java.sql.Connection makeConnection()
                                                       throws java.sql.SQLException

        Make the connection.

        This abstract method should be implemented by concrete sub-classes to make or check the current connection to the Jdbc source.

        Returns:
        a java.sql.Connection
        Throws:
        java.sql.SQLException - if the connection could not be made.
        See Also:
        connect()
      • initialiseDatabaseConnection

        protected abstract void initialiseDatabaseConnection()
                                                      throws CoreException

        Initialise the underlying database connection.

        This abstract method should be implemented by concrete sub-classes to initialise any components other than the DriverManager.

        Throws:
        CoreException - wrapping any underlying exception.
      • startDatabaseConnection

        protected abstract void startDatabaseConnection()
                                                 throws CoreException

        Initialise the underlying database connection.

        This abstract method should be implemented by concrete sub-classes to initialise any components other than the DriverManager.

        Throws:
        CoreException - wrapping any underlying exception.
      • stopDatabaseConnection

        protected abstract void stopDatabaseConnection()

        Initialise the underlying database connection.

        This abstract method should be implemented by concrete sub-classes to stop any components other than the DriverManager.

      • closeDatabaseConnection

        protected abstract void closeDatabaseConnection()

        Initialise the underlying database connection.

        This abstract method should be implemented by concrete sub-classes to close any components.

      • getConnectionName

        protected abstract java.lang.String getConnectionName()

        Returns a name for this connection for logging purposes.

        Returns:
        a name for this connection for logging purposes
      • checkInternalState

        protected void checkInternalState()
                                   throws java.sql.SQLException
        Throws:
        java.sql.SQLException
      • setAlwaysValidateConnection

        public void setAlwaysValidateConnection​(java.lang.Boolean b)

        Set whether to always validate the database connection.

        Validating the connection means that the test-statement is executed every time connect() is invoked. Depending on the test statement in question this might have an impact upon performance.

        Parameters:
        b - whether to always validate the database connection; defaults to false.
      • getAlwaysValidateConnection

        public java.lang.Boolean getAlwaysValidateConnection()

        Returns whether to always validate the database connection.

        Returns:
        whether to always validate the database connection
      • alwaysValidateConnection

        public boolean alwaysValidateConnection()
      • equals

        public abstract boolean equals​(java.lang.Object o)

        Force implementations to over-ride equals with a semantic implementation.

        Overrides:
        equals in class java.lang.Object
        See Also:
        Object.equals(java.lang.Object)
      • hashCode

        public abstract int hashCode()

        Force implementations to over-ride hashcode.

        Overrides:
        hashCode in class java.lang.Object
        See Also:
        Object.hashCode()
      • getUsername

        public java.lang.String getUsername()
      • setUsername

        public void setUsername​(java.lang.String s)
        Set the username used to access the database.
        Parameters:
        s -
      • getPassword

        public java.lang.String getPassword()
      • setPassword

        public void setPassword​(java.lang.String s)
        Set the password used to access the database.
        Parameters:
        s - the password which might be encoded using an available password scheme from Password
      • getConnectionProperties

        public KeyValuePairSet getConnectionProperties()
        Get any additional connection properties that have been configured.
        Returns:
        any additional properties
      • setConnectionProperties

        public void setConnectionProperties​(KeyValuePairSet p)
        Set any additional connection properties.

        If additional connection properties are set, then any configured username/password will be applied to the connection properties against the key 'user' and 'password' respectively. If you have configured thos properties in the connection-properties element, then make sure that you do not configure setUsername(String) or setPassword(String).

        Parameters:
        p - any additional properties over and above username/password.
      • getDriverImp

        public java.lang.String getDriverImp()
        The driver implementation to use.

        Later versions of the JDBC standard allow auto-discovery via the SPI and manual loading of the driver class is not necessary. As a result this defaults to 'null' and no driver loading is done.

      • setDriverImp

        public void setDriverImp​(java.lang.String driverImp)
        The driver implementation to use.

        Later versions of the JDBC standard allow auto-discovery via the SPI and manual loading of the driver class is not necessary. As a result this defaults to 'null' and no driver loading is done.