Class BabelfishConnection

    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      void close()
      Releases this Connection object's database and JDBC resources immediately instead of waiting for them to be automatically released.
      java.sql.Statement createStatement()
      Creates a Statement with translation features enabled
      java.sql.Statement createStatement​(boolean translation)
      Similar to createStatement() but with an additional translation flag.
      java.sql.Statement createStatement​(int resultSetType, int resultSetConcurrency)
      Returns a Statement with translation features enabled
      java.sql.Statement createStatement​(int resultSetType, int resultSetConcurrency, boolean translation)
      Similar to createStatement(int resultSetType, int resultSetConcurrency) but with an additional translation flag.
      java.sql.Statement createStatement​(int resultSetType, int resultSetConcurrency, int resultSetHoldability)
      Returns a Statement with translation features enabled
      java.sql.Statement createStatement​(int resultSetType, int resultSetConcurrency, int resultSetHoldability, boolean translation)
      Similar to createStatement(int resultSetType, int resultSetConcurrency, int resultSetHoldability) but with an additional translation flag.
      protected abstract java.lang.Object getCreator()  
      protected abstract java.lang.Object getDelegate()  
      java.util.Map<OracleTranslatingConnection.SqlTranslationVersion,​java.lang.String> getSqlTranslationVersions​(java.lang.String sql, boolean suppressExceptions)
      Returns a map of all the translation versions of the query during SQL Translation.
      java.lang.String nativeSQL​(java.lang.String sql)
      Converts the given foreign dialect SQL statement into the system's native SQL grammar.
      protected java.lang.Object post_Methods​(java.lang.reflect.Method m, java.lang.Object result)
      Post interceptor.
      java.sql.CallableStatement prepareCall​(java.lang.String sql)
      Translation enabled implementation of java.sql.Connection#prepareCall(java.lang.String)
      java.sql.CallableStatement prepareCall​(java.lang.String sql, boolean translation)
      Similar to prepareCall(String sql) but with an additional translation flag.
      java.sql.CallableStatement prepareCall​(java.lang.String sql, int resultSetType, int resultSetConcurrency)
      Translation enabled implementation of java.sql.Connection#prepareCall(java.lang.String, int, int)
      java.sql.CallableStatement prepareCall​(java.lang.String sql, int resultSetType, int resultSetConcurrency, boolean translation)
      Similar to prepareCall(String sql, int resultSetType, int resultSetConcurrency) but with an additional translation flag.
      java.sql.CallableStatement prepareCall​(java.lang.String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability)
      Translation enabled implementation of java.sql.Connection#prepareCall(java.lang.String, int, int, int)
      java.sql.CallableStatement prepareCall​(java.lang.String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability, boolean translation)
      Similar to prepareCall(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) but with an additional translation flag.
      java.sql.PreparedStatement prepareStatement​(java.lang.String sql)
      Translation enabled implementation of java.sql.Connection#prepareStatement(java.lang.String)
      java.sql.PreparedStatement prepareStatement​(java.lang.String sql, boolean translation)
      Similar to prepareStatement(String sql) but with an additional translation flag.
      java.sql.PreparedStatement prepareStatement​(java.lang.String sql, int autoGeneratedKeys)
      Translation enabled implementation of java.sql.Connection#prepareStatement(java.lang.String, int)
      java.sql.PreparedStatement prepareStatement​(java.lang.String sql, int[] columnIndexes)
      Translation enabled implementation of java.sql.Connection#prepareStatement(java.lang.String, int[])
      java.sql.PreparedStatement prepareStatement​(java.lang.String sql, int[] columnIndexes, boolean translation)
      Similar to prepareStatement(String sql, int[] columnIndexes) but with an additional translation flag.
      java.sql.PreparedStatement prepareStatement​(java.lang.String sql, int autoGeneratedKeys, boolean translation)
      Similar to prepareStatement(String sql, int autoGeneratedKeys) but with an additional translation flag.
      java.sql.PreparedStatement prepareStatement​(java.lang.String sql, int resultSetType, int resultSetConcurrency)
      Translation enabled implementation of java.sql.Connection#prepareStatement(java.lang.String, int, int)
      java.sql.PreparedStatement prepareStatement​(java.lang.String sql, int resultSetType, int resultSetConcurrency, boolean translation)
      Similar to prepareStatement(String sql, int resultSetType, int resultSetConcurrency) but with an additional translation flag.
      java.sql.PreparedStatement prepareStatement​(java.lang.String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability)
      Translation enabled implementation of java.sql.Connection#prepareStatement(java.lang.String, int, int, int)
      java.sql.PreparedStatement prepareStatement​(java.lang.String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability, boolean translation)
      Similar to prepareStatement(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) but with an additional translation flag.
      java.sql.PreparedStatement prepareStatement​(java.lang.String sql, java.lang.String[] columnNames)
      Translation enabled implementation of java.sql.Connection#prepareStatement(java.lang.String, java.lang.String[])
      java.sql.PreparedStatement prepareStatement​(java.lang.String sql, java.lang.String[] columnNames, boolean translation)
      Similar to prepareStatement(String sql, String[] columnNames) but with an additional translation flag.
      protected abstract java.lang.Object proxify​(java.lang.Object d, java.lang.Object creator)  
      protected java.lang.Object translateError​(java.lang.reflect.Method m, java.sql.SQLException ex)
      Interceptor for translation of errors.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • BabelfishConnection

        public BabelfishConnection()
    • Method Detail

      • proxify

        protected abstract java.lang.Object proxify​(java.lang.Object d,
                                                    java.lang.Object creator)
      • translateError

        protected java.lang.Object translateError​(java.lang.reflect.Method m,
                                                  java.sql.SQLException ex)
                                           throws java.sql.SQLException
        Interceptor for translation of errors.
        Overrides:
        translateError in class BabelfishGenericProxy
        Returns:
        Throws:
        java.sql.SQLException
      • post_Methods

        protected java.lang.Object post_Methods​(java.lang.reflect.Method m,
                                                java.lang.Object result)
        Post interceptor. sets up the translator in relevant objects required for handling error translation in those objects.
        Overrides:
        post_Methods in class BabelfishGenericProxy
        Returns:
      • prepareStatement

        public java.sql.PreparedStatement prepareStatement​(java.lang.String sql)
                                                    throws java.sql.SQLException
        Translation enabled implementation of java.sql.Connection#prepareStatement(java.lang.String)
        Parameters:
        sql -
        Returns:
        Throws:
        java.sql.SQLException
        See Also:
        Connection.prepareStatement(java.lang.String)
      • prepareStatement

        public java.sql.PreparedStatement prepareStatement​(java.lang.String sql,
                                                           int autoGeneratedKeys)
                                                    throws java.sql.SQLException
        Translation enabled implementation of java.sql.Connection#prepareStatement(java.lang.String, int)
        Parameters:
        sql -
        Returns:
        Throws:
        java.sql.SQLException
        See Also:
        Connection.prepareStatement(java.lang.String, int)
      • prepareStatement

        public java.sql.PreparedStatement prepareStatement​(java.lang.String sql,
                                                           int[] columnIndexes)
                                                    throws java.sql.SQLException
        Translation enabled implementation of java.sql.Connection#prepareStatement(java.lang.String, int[])
        Parameters:
        sql -
        Returns:
        Throws:
        java.sql.SQLException
        See Also:
        Connection.prepareStatement(java.lang.String, int[])
      • prepareStatement

        public java.sql.PreparedStatement prepareStatement​(java.lang.String sql,
                                                           java.lang.String[] columnNames)
                                                    throws java.sql.SQLException
        Translation enabled implementation of java.sql.Connection#prepareStatement(java.lang.String, java.lang.String[])
        Parameters:
        sql -
        Returns:
        Throws:
        java.sql.SQLException
        See Also:
        Connection.prepareStatement(java.lang.String, java.lang.String[])
      • prepareStatement

        public java.sql.PreparedStatement prepareStatement​(java.lang.String sql,
                                                           int resultSetType,
                                                           int resultSetConcurrency)
                                                    throws java.sql.SQLException
        Translation enabled implementation of java.sql.Connection#prepareStatement(java.lang.String, int, int)
        Parameters:
        sql -
        Returns:
        Throws:
        java.sql.SQLException
        See Also:
        Connection.prepareStatement(java.lang.String, int, int)
      • prepareStatement

        public java.sql.PreparedStatement prepareStatement​(java.lang.String sql,
                                                           int resultSetType,
                                                           int resultSetConcurrency,
                                                           int resultSetHoldability)
                                                    throws java.sql.SQLException
        Translation enabled implementation of java.sql.Connection#prepareStatement(java.lang.String, int, int, int)
        Parameters:
        sql -
        Returns:
        Throws:
        java.sql.SQLException
        See Also:
        Connection.prepareStatement(java.lang.String, int, int, int)
      • prepareCall

        public java.sql.CallableStatement prepareCall​(java.lang.String sql)
                                               throws java.sql.SQLException
        Translation enabled implementation of java.sql.Connection#prepareCall(java.lang.String)
        Parameters:
        sql -
        Returns:
        Throws:
        java.sql.SQLException
        See Also:
        Connection.prepareCall(java.lang.String)
      • prepareCall

        public java.sql.CallableStatement prepareCall​(java.lang.String sql,
                                                      int resultSetType,
                                                      int resultSetConcurrency)
                                               throws java.sql.SQLException
        Translation enabled implementation of java.sql.Connection#prepareCall(java.lang.String, int, int)
        Parameters:
        sql -
        Returns:
        Throws:
        java.sql.SQLException
        See Also:
        Connection.prepareCall(java.lang.String, int, int)
      • prepareCall

        public java.sql.CallableStatement prepareCall​(java.lang.String sql,
                                                      int resultSetType,
                                                      int resultSetConcurrency,
                                                      int resultSetHoldability)
                                               throws java.sql.SQLException
        Translation enabled implementation of java.sql.Connection#prepareCall(java.lang.String, int, int, int)
        Parameters:
        sql -
        Returns:
        Throws:
        java.sql.SQLException
        See Also:
        Connection.prepareCall(java.lang.String, int, int, int)
      • nativeSQL

        public java.lang.String nativeSQL​(java.lang.String sql)
                                   throws java.sql.SQLException
        Converts the given foreign dialect SQL statement into the system's native SQL grammar. A driver may convert the JDBC SQL grammar into its system's native SQL grammar prior to sending it. This method returns the native form of the statement that the driver would have sent.
        Parameters:
        sql - a foreign dialect SQL statement that may contain one or more '?' parameter placeholders
        Returns:
        the native form of this statement
        Throws:
        java.sql.SQLException - if a database access error occurs or this method is called on a closed connection
      • close

        public void close()
                   throws java.sql.SQLException
        Releases this Connection object's database and JDBC resources immediately instead of waiting for them to be automatically released.

        Calling the method close on a Connection object that is already closed is a no-op.

        It is strongly recommended that an application explicitly commits or rolls back an active transaction prior to calling the close method. If the close method is called and there is an active transaction, the results are implementation-defined.

        Throws:
        java.sql.SQLException - SQLException if a database access error occurs
      • createStatement

        public java.sql.Statement createStatement()
                                           throws java.sql.SQLException
        Creates a Statement with translation features enabled
        Throws:
        java.sql.SQLException
        See Also:
        Connection.createStatement()
      • createStatement

        public java.sql.Statement createStatement​(boolean translation)
                                           throws java.sql.SQLException
        Similar to createStatement() but with an additional translation flag. If the translation flag is true then the returning Statement will have translation enabled. If the flag is false then the returning Statement will be a normal Statement with no translation features.
        Specified by:
        createStatement in interface OracleTranslatingConnection
        Parameters:
        translation - boolean flag to enable or disable translation
        Throws:
        java.sql.SQLException
      • createStatement

        public java.sql.Statement createStatement​(int resultSetType,
                                                  int resultSetConcurrency)
                                           throws java.sql.SQLException
        Returns a Statement with translation features enabled
        Returns:
        Throws:
        java.sql.SQLException
        See Also:
        Connection.createStatement(int, int)
      • createStatement

        public java.sql.Statement createStatement​(int resultSetType,
                                                  int resultSetConcurrency,
                                                  boolean translation)
                                           throws java.sql.SQLException
        Similar to createStatement(int resultSetType, int resultSetConcurrency) but with an additional translation flag. If the translation flag is true then the returning Statement will have translation enabled. If the flag is false then the returning Statement will be a normal Statement with no translation features.
        Specified by:
        createStatement in interface OracleTranslatingConnection
        Parameters:
        translation - boolean flag to enable or disable translation
        Throws:
        java.sql.SQLException
      • createStatement

        public java.sql.Statement createStatement​(int resultSetType,
                                                  int resultSetConcurrency,
                                                  int resultSetHoldability)
                                           throws java.sql.SQLException
        Returns a Statement with translation features enabled
        Returns:
        Throws:
        java.sql.SQLException
        See Also:
        Connection.createStatement(int, int, int)
      • createStatement

        public java.sql.Statement createStatement​(int resultSetType,
                                                  int resultSetConcurrency,
                                                  int resultSetHoldability,
                                                  boolean translation)
                                           throws java.sql.SQLException
        Similar to createStatement(int resultSetType, int resultSetConcurrency, int resultSetHoldability) but with an additional translation flag. If the translation flag is true then the returning Statement will have translation enabled. If the flag is false then the returning Statement will be a normal Statement with no translation features.
        Specified by:
        createStatement in interface OracleTranslatingConnection
        Parameters:
        translation - boolean flag to enable or disable translation
        Throws:
        java.sql.SQLException
      • prepareStatement

        public java.sql.PreparedStatement prepareStatement​(java.lang.String sql,
                                                           boolean translation)
                                                    throws java.sql.SQLException
        Similar to prepareStatement(String sql) but with an additional translation flag. If the translation flag is true then the returning PreparedStatement will have translation enabled. If the flag is false then the returning PreparedStatement will be a normal PreparedStatement with no translation features.
        Specified by:
        prepareStatement in interface OracleTranslatingConnection
        Parameters:
        translation - boolean flag to enable or disable translation
        Throws:
        java.sql.SQLException
      • prepareStatement

        public java.sql.PreparedStatement prepareStatement​(java.lang.String sql,
                                                           int autoGeneratedKeys,
                                                           boolean translation)
                                                    throws java.sql.SQLException
        Similar to prepareStatement(String sql, int autoGeneratedKeys) but with an additional translation flag. If the translation flag is true then the returning PreparedStatement will have translation enabled. If the flag is false then the returning PreparedStatement will be a normal PreparedStatement with no translation features.
        Specified by:
        prepareStatement in interface OracleTranslatingConnection
        Parameters:
        translation - boolean flag to enable or disable translation
        Throws:
        java.sql.SQLException
      • prepareStatement

        public java.sql.PreparedStatement prepareStatement​(java.lang.String sql,
                                                           int[] columnIndexes,
                                                           boolean translation)
                                                    throws java.sql.SQLException
        Similar to prepareStatement(String sql, int[] columnIndexes) but with an additional translation flag. If the translation flag is true then the returning PreparedStatement will have translation enabled. If the flag is false then the returning PreparedStatement will be a normal PreparedStatement with no translation features.
        Specified by:
        prepareStatement in interface OracleTranslatingConnection
        Parameters:
        translation - boolean flag to enable or disable translation
        Throws:
        java.sql.SQLException
      • prepareStatement

        public java.sql.PreparedStatement prepareStatement​(java.lang.String sql,
                                                           java.lang.String[] columnNames,
                                                           boolean translation)
                                                    throws java.sql.SQLException
        Similar to prepareStatement(String sql, String[] columnNames) but with an additional translation flag. If the translation flag is true then the returning PreparedStatement will have translation enabled. If the flag is false then the returning PreparedStatement will be a normal PreparedStatement with no translation features.
        Specified by:
        prepareStatement in interface OracleTranslatingConnection
        Parameters:
        translation - boolean flag to enable or disable translation
        Throws:
        java.sql.SQLException
      • prepareStatement

        public java.sql.PreparedStatement prepareStatement​(java.lang.String sql,
                                                           int resultSetType,
                                                           int resultSetConcurrency,
                                                           boolean translation)
                                                    throws java.sql.SQLException
        Similar to prepareStatement(String sql, int resultSetType, int resultSetConcurrency) but with an additional translation flag. If the translation flag is true then the returning PreparedStatement will have translation enabled. If the flag is false then the returning PreparedStatement will be a normal PreparedStatement with no translation features.
        Specified by:
        prepareStatement in interface OracleTranslatingConnection
        Parameters:
        translation - boolean flag to enable or disable translation
        Throws:
        java.sql.SQLException
      • prepareStatement

        public java.sql.PreparedStatement prepareStatement​(java.lang.String sql,
                                                           int resultSetType,
                                                           int resultSetConcurrency,
                                                           int resultSetHoldability,
                                                           boolean translation)
                                                    throws java.sql.SQLException
        Similar to prepareStatement(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) but with an additional translation flag. If the translation flag is true then the returning PreparedStatement will have translation enabled. If the flag is false then the returning PreparedStatement will be a normal PreparedStatement with no translation features.
        Specified by:
        prepareStatement in interface OracleTranslatingConnection
        Parameters:
        translation - boolean flag to enable or disable translation
        Throws:
        java.sql.SQLException
      • prepareCall

        public java.sql.CallableStatement prepareCall​(java.lang.String sql,
                                                      boolean translation)
                                               throws java.sql.SQLException
        Similar to prepareCall(String sql) but with an additional translation flag. If the translation flag is true then the returning CallableStatement will have translation enabled. If the flag is false then the returning CallableStatement will be a normal CallableStatement with no translation features.
        Specified by:
        prepareCall in interface OracleTranslatingConnection
        Parameters:
        translation - boolean flag to enable or disable translation
        Throws:
        java.sql.SQLException
      • prepareCall

        public java.sql.CallableStatement prepareCall​(java.lang.String sql,
                                                      int resultSetType,
                                                      int resultSetConcurrency,
                                                      boolean translation)
                                               throws java.sql.SQLException
        Similar to prepareCall(String sql, int resultSetType, int resultSetConcurrency) but with an additional translation flag. If the translation flag is true then the returning CallableStatement will have translation enabled. If the flag is false then the returning CallableStatement will be a normal CallableStatement with no translation features.
        Specified by:
        prepareCall in interface OracleTranslatingConnection
        Parameters:
        translation - boolean flag to enable or disable translation
        Throws:
        java.sql.SQLException
      • prepareCall

        public java.sql.CallableStatement prepareCall​(java.lang.String sql,
                                                      int resultSetType,
                                                      int resultSetConcurrency,
                                                      int resultSetHoldability,
                                                      boolean translation)
                                               throws java.sql.SQLException
        Similar to prepareCall(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) but with an additional translation flag. If the translation flag is true then the returning CallableStatement will have translation enabled. If the flag is false then the returning CallableStatement will be a normal CallableStatement with no translation features.
        Specified by:
        prepareCall in interface OracleTranslatingConnection
        Parameters:
        translation - boolean flag to enable or disable translation
        Throws:
        java.sql.SQLException
      • getSqlTranslationVersions

        public java.util.Map<OracleTranslatingConnection.SqlTranslationVersion,​java.lang.String> getSqlTranslationVersions​(java.lang.String sql,
                                                                                                                                 boolean suppressExceptions)
                                                                                                                          throws java.sql.SQLException
        Returns a map of all the translation versions of the query during SQL Translation. See the documentation of OracleTranslatingConnection.SqlTranslationVersion enum for more details about returning versions.
        Specified by:
        getSqlTranslationVersions in interface OracleTranslatingConnection
        Parameters:
        sql - vendor specific sql to be translated
        suppressExceptions - suppresses any exception raised during query translation and returns whatever is available. Useful to get JDBC_MARKER_CONVERTED version when the translation is throwing error.
        Returns:
        Map with all the translation versions of a query. In case of an Exception and suppressExceptions is true then the TRANSLATED version is null.
        Throws:
        java.sql.SQLException - If there is a problem in query translation provided suppressExceptions is false.
        See Also:
        OracleTranslatingConnection