Class 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)