Jdbc41Bridge (Apache Tomcat 9.0.68 API Documentation)

Package org.apache.tomcat.dbcp.dbcp2

## Class Jdbc41Bridge

- java.lang.Object
- - org.apache.tomcat.dbcp.dbcp2.Jdbc41Bridge

-     public class Jdbc41Bridge
      extends java.lang.Object

  Defines bridge methods to JDBC 4.1 (Java 7) methods to allow call sites to operate safely (without `AbstractMethodError`) when using a JDBC driver written for JDBC 4.0 (Java 6).

  There should be no need to this kind of code for JDBC 4.2 in Java 8 due to JDBC's use of default methods.

  This should probably be moved or at least copied in some form to Apache Commons DbUtils.

  Since:
    2.6.0

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `Jdbc41Bridge()` |

  - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `static void` | `abort​(java.sql.Connection connection, java.util.concurrent.Executor executor)` | Delegates to `Connection.abort(Executor)` without throwing an `AbstractMethodError`.
    `static void` | `closeOnCompletion​(java.sql.Statement statement)` | Delegates to `Statement.closeOnCompletion()` without throwing an `AbstractMethodError`.
    `static boolean` | `generatedKeyAlwaysReturned​(java.sql.DatabaseMetaData databaseMetaData)` | Delegates to `DatabaseMetaData.generatedKeyAlwaysReturned()` without throwing a `AbstractMethodError`.
    `static int` | `getNetworkTimeout​(java.sql.Connection connection)` | Delegates to `Connection.getNetworkTimeout()` without throwing an `AbstractMethodError`.
    `static <T> T` | `getObject​(java.sql.ResultSet resultSet, int columnIndex, java.lang.Class<T> type)` | Delegates to `ResultSet.getObject(int, Class)` without throwing an `AbstractMethodError`.
    `static <T> T` | `getObject​(java.sql.ResultSet resultSet, java.lang.String columnLabel, java.lang.Class<T> type)` | Delegates to `ResultSet.getObject(String, Class)` without throwing an `AbstractMethodError`.
    `static java.util.logging.Logger` | `getParentLogger​(javax.sql.CommonDataSource commonDataSource)` | Delegates to `CommonDataSource.getParentLogger()` without throwing an `AbstractMethodError`.
    `static java.sql.ResultSet` | `getPseudoColumns​(java.sql.DatabaseMetaData databaseMetaData, java.lang.String catalog, java.lang.String schemaPattern, java.lang.String tableNamePattern, java.lang.String columnNamePattern)` | Delegates to `DatabaseMetaData.getPseudoColumns(String, String, String, String)` without throwing a `AbstractMethodError`.
    `static java.lang.String` | `getSchema​(java.sql.Connection connection)` | Delegates to `Connection.getSchema()` without throwing an `AbstractMethodError`.
    `static boolean` | `isCloseOnCompletion​(java.sql.Statement statement)` | Delegates to `Statement.isCloseOnCompletion()` without throwing an `AbstractMethodError`.
    `static void` | `setNetworkTimeout​(java.sql.Connection connection, java.util.concurrent.Executor executor, int milliseconds)` | Delegates to `Connection.setNetworkTimeout(Executor, int)` without throwing an `AbstractMethodError`.
    `static void` | `setSchema​(java.sql.Connection connection, java.lang.String schema)` | Delegates to `Connection.setSchema(String)` without throwing an `AbstractMethodError`.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### Jdbc41Bridge

          public Jdbc41Bridge()

  - ### Method Detail

    - #### abort

          public static void abort​(java.sql.Connection connection,
                                   java.util.concurrent.Executor executor)
                            throws java.sql.SQLException

      Delegates to `Connection.abort(Executor)` without throwing an `AbstractMethodError`.

      If the JDBC driver does not implement `Connection.abort(Executor)`, then call `Connection.close()`.

      Parameters:
        `connection` - the receiver
        `executor` - See `Connection.abort(Executor)`.
      Throws:
        `java.sql.SQLException` - See `Connection.abort(Executor)`.
      See Also:
        `Connection.abort(Executor)`

    - #### closeOnCompletion

          public static void closeOnCompletion​(java.sql.Statement statement)
                                        throws java.sql.SQLException

      Delegates to `Statement.closeOnCompletion()` without throwing an `AbstractMethodError`.

      If the JDBC driver does not implement `Statement.closeOnCompletion()`, then just check that the connection is closed to then throw an SQLException.

      Parameters:
        `statement` - See `Statement.closeOnCompletion()`
      Throws:
        `java.sql.SQLException` - See `Statement.closeOnCompletion()`
      See Also:
        `Statement.closeOnCompletion()`

    - #### generatedKeyAlwaysReturned

          public static boolean generatedKeyAlwaysReturned​(java.sql.DatabaseMetaData databaseMetaData)
                                                    throws java.sql.SQLException

      Delegates to `DatabaseMetaData.generatedKeyAlwaysReturned()` without throwing a `AbstractMethodError`.

      If the JDBC driver does not implement `DatabaseMetaData.generatedKeyAlwaysReturned()`, then return false.

      Parameters:
        `databaseMetaData` - See `DatabaseMetaData.generatedKeyAlwaysReturned()`
      Returns:
        See `DatabaseMetaData.generatedKeyAlwaysReturned()`
      Throws:
        `java.sql.SQLException` - See `DatabaseMetaData.generatedKeyAlwaysReturned()`
      See Also:
        `DatabaseMetaData.generatedKeyAlwaysReturned()`

    - #### getNetworkTimeout

          public static int getNetworkTimeout​(java.sql.Connection connection)
                                       throws java.sql.SQLException

      Delegates to `Connection.getNetworkTimeout()` without throwing an `AbstractMethodError`.

      If the JDBC driver does not implement `Connection.getNetworkTimeout()`, then return 0.

      Parameters:
        `connection` - the receiver
      Returns:
        See `Connection.getNetworkTimeout()`
      Throws:
        `java.sql.SQLException` - See `Connection.getNetworkTimeout()`
      See Also:
        `Connection.getNetworkTimeout()`

    - #### getObject

          public static <T> T getObject​(java.sql.ResultSet resultSet,
                                        int columnIndex,
                                        java.lang.Class<T> type)
                                 throws java.sql.SQLException

      Delegates to `ResultSet.getObject(int, Class)` without throwing an `AbstractMethodError`.

      If the JDBC driver does not implement `ResultSet.getObject(int, Class)`, then return 0.

      Type Parameters:
        `T` - See `ResultSet.getObject(int, Class)`
      Parameters:
        `resultSet` - See `ResultSet.getObject(int, Class)`
        `columnIndex` - See `ResultSet.getObject(int, Class)`
        `type` - See `ResultSet.getObject(int, Class)`
      Returns:
        See `ResultSet.getObject(int, Class)`
      Throws:
        `java.sql.SQLException` - See `ResultSet.getObject(int, Class)`
      See Also:
        `ResultSet.getObject(int, Class)`

    - #### getObject

          public static <T> T getObject​(java.sql.ResultSet resultSet,
                                        java.lang.String columnLabel,
                                        java.lang.Class<T> type)
                                 throws java.sql.SQLException

      Delegates to `ResultSet.getObject(String, Class)` without throwing an `AbstractMethodError`.
      Type Parameters:
        `T` - See `ResultSet.getObject(String, Class)`
      Parameters:
        `resultSet` - See `ResultSet.getObject(String, Class)`
        `columnLabel` - See `ResultSet.getObject(String, Class)`
        `type` - See `ResultSet.getObject(String, Class)`
      Returns:
        See `ResultSet.getObject(String, Class)`
      Throws:
        `java.sql.SQLException` - See `ResultSet.getObject(String, Class)`
      See Also:
        `ResultSet.getObject(int, Class)`

    - #### getParentLogger

          public static java.util.logging.Logger getParentLogger​(javax.sql.CommonDataSource commonDataSource)
                                                          throws java.sql.SQLFeatureNotSupportedException

      Delegates to `CommonDataSource.getParentLogger()` without throwing an `AbstractMethodError`.

      If the JDBC driver does not implement `CommonDataSource.getParentLogger()`, then return null.

      Parameters:
        `commonDataSource` - See `CommonDataSource.getParentLogger()`
      Returns:
        See `CommonDataSource.getParentLogger()`
      Throws:
        `java.sql.SQLFeatureNotSupportedException` - See `CommonDataSource.getParentLogger()`

    - #### getPseudoColumns

          public static java.sql.ResultSet getPseudoColumns​(java.sql.DatabaseMetaData databaseMetaData,
                                                            java.lang.String catalog,
                                                            java.lang.String schemaPattern,
                                                            java.lang.String tableNamePattern,
                                                            java.lang.String columnNamePattern)
                                                     throws java.sql.SQLException

      Delegates to `DatabaseMetaData.getPseudoColumns(String, String, String, String)` without throwing a `AbstractMethodError`.

      If the JDBC driver does not implement `DatabaseMetaData.getPseudoColumns(String, String, String, String)`, then return null.

      Parameters:
        `databaseMetaData` - the receiver
        `catalog` - See `DatabaseMetaData.getPseudoColumns(String, String, String, String)`
        `schemaPattern` - See `DatabaseMetaData.getPseudoColumns(String, String, String, String)`
        `tableNamePattern` - See `DatabaseMetaData.getPseudoColumns(String, String, String, String)`
        `columnNamePattern` - See `DatabaseMetaData.getPseudoColumns(String, String, String, String)`
      Returns:
        See `DatabaseMetaData.getPseudoColumns(String, String, String, String)`
      Throws:
        `java.sql.SQLException` - See `DatabaseMetaData.getPseudoColumns(String, String, String, String)`
      See Also:
        `DatabaseMetaData.getPseudoColumns(String, String, String, String)`

    - #### getSchema

          public static java.lang.String getSchema​(java.sql.Connection connection)
                                            throws java.sql.SQLException

      Delegates to `Connection.getSchema()` without throwing an `AbstractMethodError`.

      If the JDBC driver does not implement `Connection.getSchema()`, then return null.

      Parameters:
        `connection` - the receiver
      Returns:
        null for a JDBC 4 driver or a value per `Connection.getSchema()`.
      Throws:
        `java.sql.SQLException` - See `Connection.getSchema()`.
      See Also:
        `Connection.getSchema()`

    - #### isCloseOnCompletion

          public static boolean isCloseOnCompletion​(java.sql.Statement statement)
                                             throws java.sql.SQLException

      Delegates to `Statement.isCloseOnCompletion()` without throwing an `AbstractMethodError`.

      If the JDBC driver does not implement `Statement.isCloseOnCompletion()`, then just check that the connection is closed to then throw an SQLException.

      Parameters:
        `statement` - See `Statement.isCloseOnCompletion()`
      Returns:
        See `Statement.isCloseOnCompletion()`
      Throws:
        `java.sql.SQLException` - See `Statement.isCloseOnCompletion()`
      See Also:
        `Statement.closeOnCompletion()`

    - #### setNetworkTimeout

          public static void setNetworkTimeout​(java.sql.Connection connection,
                                               java.util.concurrent.Executor executor,
                                               int milliseconds)
                                        throws java.sql.SQLException

      Delegates to `Connection.setNetworkTimeout(Executor, int)` without throwing an `AbstractMethodError`.

      If the JDBC driver does not implement `Connection.setNetworkTimeout(Executor, int)`, then do nothing.

      Parameters:
        `connection` - the receiver
        `executor` - See `Connection.setNetworkTimeout(Executor, int)`
        `milliseconds` - `Connection.setNetworkTimeout(Executor, int)`
      Throws:
        `java.sql.SQLException` - `Connection.setNetworkTimeout(Executor, int)`
      See Also:
        `Connection.setNetworkTimeout(Executor, int)`

    - #### setSchema

          public static void setSchema​(java.sql.Connection connection,
                                       java.lang.String schema)
                                throws java.sql.SQLException

      Delegates to `Connection.setSchema(String)` without throwing an `AbstractMethodError`.

      If the JDBC driver does not implement `Connection.setSchema(String)`, then do nothing.

      Parameters:
        `connection` - the receiver
        `schema` - See `Connection.setSchema(String)`.
      Throws:
        `java.sql.SQLException` - See `Connection.setSchema(String)`.
      See Also:
        `Connection.setSchema(String)`