Class FBConnection

    • Constructor Detail

      • FBConnection

        public FBConnection​(FBManagedConnection mc)
        Create a new AbstractConnection instance based on a FBManagedConnection.
        Parameters:
        mc - A FBManagedConnection around which this connection is based
    • Method Detail

      • getHoldability

        public int getHoldability()
                           throws java.sql.SQLException
        Specified by:
        getHoldability in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • setHoldability

        public void setHoldability​(int holdability)
                            throws java.sql.SQLException
        Specified by:
        setHoldability in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • checkValidity

        protected void checkValidity()
                              throws java.sql.SQLException
        Check if this connection is valid. This method should be invoked before executing any action in this class.
        Throws:
        java.sql.SQLException - if this connection has been closed and cannot be used anymore.
      • freeStatements

        protected void freeStatements()
                               throws java.sql.SQLException
        This method closes all active statements and cleans resources.
        Throws:
        java.sql.SQLException - if at least one of the active statements failed to close gracefully.
      • setManagedConnection

        public void setManagedConnection​(FBManagedConnection mc)
        Set the FBManagedConnection around which this connection is based.
        Parameters:
        mc - The FBManagedConnection around which this connection is based
      • getFbDatabase

        public FbDatabase getFbDatabase()
                                 throws java.sql.SQLException
        Description copied from interface: FirebirdConnection
        Provides access to the low-level connection handle.

        WARNING using this connection handle directly may bring the JDBC connection in an inconsistent state.

        Specified by:
        getFbDatabase in interface FirebirdConnection
        Returns:
        The low-level connection handle.
        Throws:
        java.sql.SQLException
      • setTransactionParameters

        @Deprecated
        public void setTransactionParameters​(int isolationLevel,
                                             int[] parameters)
                                      throws java.sql.SQLException
        Deprecated.
        Description copied from interface: FirebirdConnection
        Set transaction parameters for the specified isolation level. They will take effect only on the newly started transaction.
        Specified by:
        setTransactionParameters in interface FirebirdConnection
        Parameters:
        isolationLevel - JDBC isolation level.
        parameters - array of TPB parameters, see all TPB_* constants.
        Throws:
        java.sql.SQLException - if specified transaction parameters cannot be set.
      • getTransactionParameters

        public TransactionParameterBuffer getTransactionParameters​(int isolationLevel)
                                                            throws java.sql.SQLException
        Description copied from interface: FirebirdConnection
        Get transaction parameters for the specified transaction isolation level.
        Specified by:
        getTransactionParameters in interface FirebirdConnection
        Parameters:
        isolationLevel - isolation level defined in the Connection interface.
        Returns:
        instance of TransactionParameterBuffer containing current transaction parameters.
        Throws:
        java.sql.SQLException - if error occurred obtaining transaction parameters.
      • setTransactionParameters

        public void setTransactionParameters​(int isolationLevel,
                                             TransactionParameterBuffer tpb)
                                      throws java.sql.SQLException
        Description copied from interface: FirebirdConnection
        Set transaction parameters for the specified transaction isolation level.

        This method replaces the default TPB mapping with the specified one, changes will be effective from the next transaction start.

        Specified by:
        setTransactionParameters in interface FirebirdConnection
        tpb - instance of TransactionParameterBuffer with parameters to set.
        Throws:
        java.sql.SQLException - if error occurred during this operation.
      • setTransactionParameters

        public void setTransactionParameters​(TransactionParameterBuffer tpb)
                                      throws java.sql.SQLException
        Description copied from interface: FirebirdConnection
        Set transaction parameters for the next transactions.

        This method does not change the TPB mapping, but replaces the mapping for the current transaction isolation until Connection.setTransactionIsolation(int) is called.

        Method cannot be called when transaction has already started.

        Specified by:
        setTransactionParameters in interface FirebirdConnection
        Parameters:
        tpb - instance of TransactionParameterBuffer with new transaction parameters.
        Throws:
        java.sql.SQLException - if method is called within a transaction.
      • createStatement

        public java.sql.Statement createStatement()
                                           throws java.sql.SQLException
        Specified by:
        createStatement in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • prepareStatement

        public java.sql.PreparedStatement prepareStatement​(java.lang.String sql)
                                                    throws java.sql.SQLException
        Specified by:
        prepareStatement in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • prepareCall

        public java.sql.CallableStatement prepareCall​(java.lang.String sql)
                                               throws java.sql.SQLException
        Specified by:
        prepareCall in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • createBlob

        public java.sql.Blob createBlob()
                                 throws java.sql.SQLException
        Description copied from interface: FirebirdConnection
        Specified by:
        createBlob in interface java.sql.Connection
        Specified by:
        createBlob in interface FirebirdConnection
        Returns:
        instance of FirebirdBlob.
        Throws:
        java.sql.SQLException
      • createClob

        public java.sql.Clob createClob()
                                 throws java.sql.SQLException
        Specified by:
        createClob in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • createStruct

        public java.sql.Struct createStruct​(java.lang.String typeName,
                                            java.lang.Object[] attributes)
                                     throws java.sql.SQLException
        Specified by:
        createStruct in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • createArrayOf

        public java.sql.Array createArrayOf​(java.lang.String typeName,
                                            java.lang.Object[] elements)
                                     throws java.sql.SQLException
        Specified by:
        createArrayOf in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • nativeSQL

        public java.lang.String nativeSQL​(java.lang.String sql)
                                   throws java.sql.SQLException
        Specified by:
        nativeSQL in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • setAutoCommit

        public void setAutoCommit​(boolean autoCommit)
                           throws java.sql.SQLException
        Specified by:
        setAutoCommit in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • setTransactionCoordinator

        protected void setTransactionCoordinator​(boolean managedConnection,
                                                 boolean autoCommit)
                                          throws java.sql.SQLException
        Throws:
        java.sql.SQLException
      • setManagedEnvironment

        public void setManagedEnvironment​(boolean managedConnection)
                                   throws java.sql.SQLException
        Throws:
        java.sql.SQLException
      • getAutoCommit

        public boolean getAutoCommit()
                              throws java.sql.SQLException
        Specified by:
        getAutoCommit in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • commit

        public void commit()
                    throws java.sql.SQLException
        Specified by:
        commit in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • rollback

        public void rollback()
                      throws java.sql.SQLException
        Specified by:
        rollback in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • invalidateTransactionLifetimeObjects

        protected void invalidateTransactionLifetimeObjects()
        Invalidate everything that should only last for the lifetime of the current transaction.
      • close

        public void close()
                   throws java.sql.SQLException

        Implementation note: Certain fatal errors also result in a closed Connection.

        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • isClosed

        public boolean isClosed()
        Specified by:
        isClosed in interface java.sql.Connection
      • isValid

        public boolean isValid​(int timeout)
                        throws java.sql.SQLException
        Specified by:
        isValid in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • getMetaData

        public java.sql.DatabaseMetaData getMetaData()
                                              throws java.sql.SQLException
        Specified by:
        getMetaData in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • setReadOnly

        public void setReadOnly​(boolean readOnly)
                         throws java.sql.SQLException
        Specified by:
        setReadOnly in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • isReadOnly

        public boolean isReadOnly()
                           throws java.sql.SQLException
        Specified by:
        isReadOnly in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • setCatalog

        public void setCatalog​(java.lang.String catalog)
                        throws java.sql.SQLException

        Implementation ignores calls to this method as catalogs are not supported.

        Specified by:
        setCatalog in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • getCatalog

        public java.lang.String getCatalog()
                                    throws java.sql.SQLException
        Specified by:
        getCatalog in interface java.sql.Connection
        Returns:
        Always null as catalogs are not supported.
        Throws:
        java.sql.SQLException
      • setTransactionIsolation

        public void setTransactionIsolation​(int level)
                                     throws java.sql.SQLException
        Specified by:
        setTransactionIsolation in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • getTransactionIsolation

        public int getTransactionIsolation()
                                    throws java.sql.SQLException
        Specified by:
        getTransactionIsolation in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • getWarnings

        public java.sql.SQLWarning getWarnings()
                                        throws java.sql.SQLException
        Specified by:
        getWarnings in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • clearWarnings

        public void clearWarnings()
                           throws java.sql.SQLException
        Specified by:
        clearWarnings in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • createStatement

        public java.sql.Statement createStatement​(int resultSetType,
                                                  int resultSetConcurrency)
                                           throws java.sql.SQLException
        Specified by:
        createStatement in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • createStatement

        public java.sql.Statement createStatement​(int resultSetType,
                                                  int resultSetConcurrency,
                                                  int resultSetHoldability)
                                           throws java.sql.SQLException
        Specified by:
        createStatement in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • prepareStatement

        public java.sql.PreparedStatement prepareStatement​(java.lang.String sql,
                                                           int resultSetType,
                                                           int resultSetConcurrency)
                                                    throws java.sql.SQLException
        Specified by:
        prepareStatement in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • prepareStatement

        public java.sql.PreparedStatement prepareStatement​(java.lang.String sql,
                                                           int resultSetType,
                                                           int resultSetConcurrency,
                                                           int resultSetHoldability)
                                                    throws java.sql.SQLException
        Specified by:
        prepareStatement in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • prepareMetaDataStatement

        @Deprecated
        protected java.sql.PreparedStatement prepareMetaDataStatement​(java.lang.String sql,
                                                                      int resultSetType,
                                                                      int resultSetConcurrency)
                                                               throws java.sql.SQLException
        Deprecated.
        Throws:
        java.sql.SQLException
      • prepareStatement

        public java.sql.PreparedStatement prepareStatement​(java.lang.String sql,
                                                           int autoGeneratedKeys)
                                                    throws java.sql.SQLException
        Specified by:
        prepareStatement in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • prepareStatement

        public java.sql.PreparedStatement prepareStatement​(java.lang.String sql,
                                                           int[] columnIndexes)
                                                    throws java.sql.SQLException
        Specified by:
        prepareStatement in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • prepareStatement

        public java.sql.PreparedStatement prepareStatement​(java.lang.String sql,
                                                           java.lang.String[] columnNames)
                                                    throws java.sql.SQLException
        Specified by:
        prepareStatement in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • prepareStatement

        protected java.sql.PreparedStatement prepareStatement​(java.lang.String sql,
                                                              int resultSetType,
                                                              int resultSetConcurrency,
                                                              int resultSetHoldability,
                                                              boolean metaData,
                                                              boolean generatedKeys)
                                                       throws java.sql.SQLException
        Throws:
        java.sql.SQLException
      • prepareCall

        public java.sql.CallableStatement prepareCall​(java.lang.String sql,
                                                      int resultSetType,
                                                      int resultSetConcurrency)
                                               throws java.sql.SQLException
        Specified by:
        prepareCall in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • prepareCall

        public java.sql.CallableStatement prepareCall​(java.lang.String sql,
                                                      int resultSetType,
                                                      int resultSetConcurrency,
                                                      int resultSetHoldability)
                                               throws java.sql.SQLException
        Specified by:
        prepareCall in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • getTypeMap

        public java.util.Map<java.lang.String,​java.lang.Class<?>> getTypeMap()
                                                                            throws java.sql.SQLException
        Specified by:
        getTypeMap in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • setTypeMap

        public void setTypeMap​(java.util.Map<java.lang.String,​java.lang.Class<?>> map)
                        throws java.sql.SQLException
        Specified by:
        setTypeMap in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • setSavepoint

        public java.sql.Savepoint setSavepoint()
                                        throws java.sql.SQLException
        Specified by:
        setSavepoint in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • setSavepoint

        public java.sql.Savepoint setSavepoint​(java.lang.String name)
                                        throws java.sql.SQLException
        Creates a named savepoint.

        Savepoint names need to be valid Firebird identifiers, and the maximum length is restricted to the maximum identifier length (see DatabaseMetaData.getMaxColumnNameLength(). The implementation will take care of quoting the savepoint name appropriately for the connection dialect. The name should be passed unquoted.

        With connection dialect 1, the name is restricted to the rules for unquoted identifier names, that is, its characters are restricted to A-Za-z0-9$_ and handled case insensitive.

        For dialect 2 and 3, the name is restricted to the rules for Firebird quoted identifiers (essentially any printable character and space is valid), and the name is handled case sensitive.

        Specified by:
        setSavepoint in interface java.sql.Connection
        Parameters:
        name - Savepoint name
        Returns:
        Savepoint object
        Throws:
        java.sql.SQLException - if a database access error occurs, this method is called while participating in a distributed transaction, this method is called on a closed connection or this Connection object is currently in auto-commit mode
      • rollback

        public void rollback​(java.sql.Savepoint savepoint)
                      throws java.sql.SQLException
        Specified by:
        rollback in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • releaseSavepoint

        public void releaseSavepoint​(java.sql.Savepoint savepoint)
                              throws java.sql.SQLException
        Specified by:
        releaseSavepoint in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • invalidateSavepoints

        protected void invalidateSavepoints()
        Invalidate all savepoints.
      • getLocalTransaction

        public FBLocalTransaction getLocalTransaction()
        Returns a FBLocalTransaction instance that enables a component to demarcate resource manager local transactions on this connection.
      • isWrapperFor

        public boolean isWrapperFor​(java.lang.Class<?> iface)
                             throws java.sql.SQLException
        Specified by:
        isWrapperFor in interface java.sql.Wrapper
        Throws:
        java.sql.SQLException
      • unwrap

        public <T> T unwrap​(java.lang.Class<T> iface)
                     throws java.sql.SQLException
        Specified by:
        unwrap in interface java.sql.Wrapper
        Throws:
        java.sql.SQLException
      • setSchema

        public void setSchema​(java.lang.String schema)
                       throws java.sql.SQLException

        Implementation ignores calls to this method as schemas are not supported.

        Specified by:
        setSchema in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • getSchema

        public java.lang.String getSchema()
                                   throws java.sql.SQLException
        Specified by:
        getSchema in interface java.sql.Connection
        Returns:
        Always null as schemas ar not supported
        Throws:
        java.sql.SQLException
      • inTransaction

        @Deprecated
        public boolean inTransaction()
                              throws java.sql.SQLException
        Deprecated.
        will be removed in Jaybird 6 without replacement
        Check if this connection is currently involved in a transaction.
        Throws:
        java.sql.SQLException
      • getIscEncoding

        @Deprecated
        public java.lang.String getIscEncoding()
                                        throws java.sql.SQLException
        Deprecated.
        Description copied from interface: FirebirdConnection
        Get current ISC encoding.
        Specified by:
        getIscEncoding in interface FirebirdConnection
        Returns:
        current ISC encoding.
        Throws:
        java.sql.SQLException
      • addWarning

        public void addWarning​(java.sql.SQLWarning warning)
      • createNClob

        public java.sql.NClob createNClob()
                                   throws java.sql.SQLException

        Implementation note: This method behaves exactly the same as createClob().

        Specified by:
        createNClob in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • createSQLXML

        public java.sql.SQLXML createSQLXML()
                                     throws java.sql.SQLException
        Specified by:
        createSQLXML in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • getGDSHelper

        public GDSHelper getGDSHelper()
                               throws java.sql.SQLException
        Throws:
        java.sql.SQLException
      • isUseFirebirdAutoCommit

        public boolean isUseFirebirdAutoCommit()
        Specified by:
        isUseFirebirdAutoCommit in interface FirebirdConnection
        Returns:
        true if this connection is configured to use isc_tpb_autocommit when in auto commit.
      • checkClientInfoSupport

        @Deprecated
        protected void checkClientInfoSupport()
                                       throws java.sql.SQLException
        Deprecated.
        will be removed in Jaybird 6 without replacement
        Checks if client info is supported.
        Throws:
        java.sql.SQLException - If the client info is not supported, or if there is no database connection.
      • getClientInfo

        public java.util.Properties getClientInfo()
                                           throws java.sql.SQLException
        Specified by:
        getClientInfo in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • getClientInfo

        public java.lang.String getClientInfo​(java.lang.String name)
                                       throws java.sql.SQLException
        Specified by:
        getClientInfo in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • getClientInfo

        protected java.lang.String getClientInfo​(java.sql.PreparedStatement stmt,
                                                 java.lang.String name)
                                          throws java.sql.SQLException
        Throws:
        java.sql.SQLException
      • setClientInfo

        public void setClientInfo​(java.util.Properties properties)
                           throws java.sql.SQLClientInfoException
        Specified by:
        setClientInfo in interface java.sql.Connection
        Throws:
        java.sql.SQLClientInfoException
      • setClientInfo

        public void setClientInfo​(java.lang.String name,
                                  java.lang.String value)
                           throws java.sql.SQLClientInfoException
        Specified by:
        setClientInfo in interface java.sql.Connection
        Throws:
        java.sql.SQLClientInfoException
      • setClientInfo

        protected void setClientInfo​(java.sql.PreparedStatement stmt,
                                     java.lang.String name,
                                     java.lang.String value)
                              throws java.sql.SQLException
        Throws:
        java.sql.SQLException
      • abort

        public void abort​(java.util.concurrent.Executor executor)
                   throws java.sql.SQLException
        Specified by:
        abort in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • setNetworkTimeout

        public void setNetworkTimeout​(java.util.concurrent.Executor executor,
                                      int milliseconds)
                               throws java.sql.SQLException
        Specified by:
        setNetworkTimeout in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • getNetworkTimeout

        public int getNetworkTimeout()
                              throws java.sql.SQLException
        Specified by:
        getNetworkTimeout in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • isLockedByCurrentThread

        protected final boolean isLockedByCurrentThread()