Package org.firebirdsql.jdbc

## Interface FirebirdConnectionProperties

- All Known Implementing Classes:
    `FBAbstractCommonDataSource`, `FBConnectionPoolDataSource`, `FBConnectionProperties`, `FBManagedConnectionFactory`, `FBSimpleDataSource`, `FBXADataSource`

      public interface FirebirdConnectionProperties

  Connection properties for the Firebird connection. Main part of this interface corresponds to the Database Parameter Buffer, but also contains properties to specify default transaction parameters.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `java.lang.String` | `getAuthPlugins()` | Get the list of authentication plugins to try.
    `int` | `getBlobBufferSize()` |
    `int` | `getBuffersNumber()` |
    `java.lang.String` | `getCharSet()` |
    `int` | `getConnectTimeout()` | Get the current connect timeout.
    `java.lang.String` | `getDatabase()` |
    `DatabaseParameterBuffer` | `getDatabaseParameterBuffer()` | Get the database parameter buffer corresponding to the current connection request information.
    `java.lang.String` | `getDataTypeBind()` | Get the `dataTypeBind` configuration.
    `java.lang.String` | `getDbCryptConfig()` | Get the database encryption plugin configuration.
    `java.lang.String` | `getDefaultIsolation()` | Get the default transaction isolation level as string.
    `int` | `getDefaultTransactionIsolation()` | Get the default transaction isolation level.
    `java.lang.String` | `getEncoding()` |
    `java.lang.String` | `getGeneratedKeysEnabled()` | Get the `generatedKeysEnabled` configuration.
    `java.lang.String` | `getNonStandardProperty​(java.lang.String key)` | Get the property that does not have corresponding getter method by its name.
    `java.lang.String` | `getPassword()` |
    `java.lang.String` | `getRoleName()` |
    `java.lang.String` | `getSessionTimeZone()` | Get the `sessionTimeZone`.
    `int` | `getSocketBufferSize()` |
    `int` | `getSoTimeout()` | Get the current Socket blocking timeout (SoTimeout).
    `java.lang.String` | `getSqlDialect()` |
    `java.lang.String` | `getTpbMapping()` | Get the used TPB mapping.
    `TransactionParameterBuffer` | `getTransactionParameters​(int isolation)` | Get the transaction parameter buffer corresponding to the current connection request information.
    `java.lang.String` | `getType()` |
    `java.lang.String` | `getUserName()` |
    `java.lang.String` | `getWireCrypt()` | Get the wire encryption level value.
    `boolean` | `isDefaultResultSetHoldable()` | Get the default ResultSet holdability.
    `boolean` | `isIgnoreProcedureType()` | Get the value for `ignoreProcedureType`.
    `boolean` | `isTimestampUsesLocalTimezone()` |
    `boolean` | `isUseFirebirdAutocommit()` | Get whether to use Firebird autocommit (experimental).
    `boolean` | `isUseStandardUdf()` |
    `boolean` | `isUseStreamBlobs()` |
    `boolean` | `isWireCompression()` | Get if wire compression should be enabled.
    `void` | `setAuthPlugins​(java.lang.String authPlugins)` | Sets the authentication plugins to try.
    `void` | `setBlobBufferSize​(int bufferSize)` |
    `void` | `setBuffersNumber​(int buffersNumber)` |
    `void` | `setCharSet​(java.lang.String charSet)` |
    `void` | `setConnectTimeout​(int connectTimeout)` | Set the connect timeout.
    `void` | `setDatabase​(java.lang.String database)` |
    `void` | `setDataTypeBind​(java.lang.String dataTypeBind)` | Sets the `dataTypeBind` configuration.
    `void` | `setDbCryptConfig​(java.lang.String dbCryptConfig)` | Sets the database encryption plugin configuration.
    `void` | `setDefaultIsolation​(java.lang.String isolation)` | Set the default transaction isolation level as string.
    `void` | `setDefaultResultSetHoldable​(boolean isHoldable)` | Sets the default ResultSet holdability.
    `void` | `setDefaultTransactionIsolation​(int defaultIsolationLevel)` | Set the default transaction isolation level.
    `void` | `setEncoding​(java.lang.String encoding)` |
    `void` | `setGeneratedKeysEnabled​(java.lang.String generatedKeysEnabled)` | Sets the `generatedKeysEnabled` configuration.
    `void` | `setIgnoreProcedureType​(boolean ignoreProcedureType)` | Sets the value `ignoreProcedureType`.
    `void` | `setNonStandardProperty​(java.lang.String propertyMapping)` | Set the property that does not have corresponding setter method.
    `void` | `setNonStandardProperty​(java.lang.String key, java.lang.String value)` | Set the property that does not have corresponding setter method.
    `void` | `setPassword​(java.lang.String password)` |
    `void` | `setRoleName​(java.lang.String roleName)` |
    `void` | `setSessionTimeZone​(java.lang.String sessionTimeZone)` | Sets the `sessionTimeZone`.
    `void` | `setSocketBufferSize​(int socketBufferSize)` |
    `void` | `setSoTimeout​(int soTimeout)` | Set the Socket blocking timeout (SoTimeout).
    `void` | `setSqlDialect​(java.lang.String sqlDialect)` |
    `void` | `setTimestampUsesLocalTimezone​(boolean timestampUsesLocalTimezone)` |
    `void` | `setTpbMapping​(java.lang.String tpbMapping)` | Set path to the properties file with the TPB mapping.
    `void` | `setTransactionParameters​(int isolation, TransactionParameterBuffer tpb)` | Set transaction parameters for the specified transaction isolation level.
    `void` | `setType​(java.lang.String type)` |
    `void` | `setUseFirebirdAutocommit​(boolean useFirebirdAutocommit)` | Set whether to use Firebird autocommit (experimental).
    `void` | `setUserName​(java.lang.String userName)` |
    `void` | `setUseStandardUdf​(boolean useStandardUdf)` |
    `void` | `setUseStreamBlobs​(boolean useStreamBlobs)` |
    `void` | `setWireCompression​(boolean wireCompression)` | Sets if the connection should try to enable wire compression.
    `void` | `setWireCrypt​(java.lang.String wireCrypt)` | Sets the wire encryption level.

- - ### Method Detail

    - #### getDatabase

          java.lang.String getDatabase()

      Returns:
        path to the database including the server name and the port, if needed.

    - #### setDatabase

          void setDatabase​(java.lang.String database)

      Parameters:
        `database` - path to the database including the server name and the port, if needed.

    - #### getType

          java.lang.String getType()

      Returns:
        type of the connection, for example, "PURE_JAVA", "LOCAL", "EMBEDDED", depends on the GDS implementations installed in the system.

    - #### setType

          void setType​(java.lang.String type)

      Parameters:
        `type` - type of the connection, for example, "PURE_JAVA", "LOCAL", "EMBEDDED", depends on the GDS implementations installed in the system.

    - #### getBlobBufferSize

          int getBlobBufferSize()

      Returns:
        BLOB buffer size in bytes.

    - #### setBlobBufferSize

          void setBlobBufferSize​(int bufferSize)

      Parameters:
        `bufferSize` - size of the BLOB buffer in bytes.

    - #### getCharSet

          java.lang.String getCharSet()

      Returns:
        Character set for the connection.
      See Also:
        `setCharSet(String)`

    - #### setCharSet

          void setCharSet​(java.lang.String charSet)

      Parameters:
        `charSet` - Character set for the connection. Similar to `encoding` property, but accepts Java names instead of Firebird ones.

    - #### getEncoding

          java.lang.String getEncoding()

      Returns:
        Character encoding for the connection.
      See Also:
        `setEncoding(String)`

    - #### setEncoding

          void setEncoding​(java.lang.String encoding)

      Parameters:
        `encoding` - Character encoding for the connection. See Firebird documentation for more information.

    - #### getRoleName

          java.lang.String getRoleName()

      Returns:
        SQL role to use.

    - #### setRoleName

          void setRoleName​(java.lang.String roleName)

      Parameters:
        `roleName` - SQL role to use.

    - #### getSqlDialect

          java.lang.String getSqlDialect()

      Returns:
        SQL dialect of the client.

    - #### setSqlDialect

          void setSqlDialect​(java.lang.String sqlDialect)

      Parameters:
        `sqlDialect` - SQL dialect of the client.

    - #### isUseStreamBlobs

          boolean isUseStreamBlobs()

      Returns:
        `true` if stream blobs should be created, otherwise `false`.

    - #### setUseStreamBlobs

          void setUseStreamBlobs​(boolean useStreamBlobs)

      Parameters:
        `useStreamBlobs` - `true` if stream blobs should be created, otherwise `false`.

    - #### isUseStandardUdf

          boolean isUseStandardUdf()

      Returns:
        `true` if driver should assume that standard UDF are installed.

    - #### setUseStandardUdf

          void setUseStandardUdf​(boolean useStandardUdf)

      Parameters:
        `useStandardUdf` - `true` if driver should assume that standard UDF are installed.

    - #### getSocketBufferSize

          int getSocketBufferSize()

      Returns:
        socket buffer size in bytes, or -1 is not specified.

    - #### setSocketBufferSize

          void setSocketBufferSize​(int socketBufferSize)

      Parameters:
        `socketBufferSize` - socket buffer size in bytes.

    - #### isTimestampUsesLocalTimezone

          boolean isTimestampUsesLocalTimezone()

      Returns:
        `true` if the Jaybird 1.0 handling of the calendar in corresponding setters. This is also compatible with MySQL calendar treatment.

    - #### setTimestampUsesLocalTimezone

          void setTimestampUsesLocalTimezone​(boolean timestampUsesLocalTimezone)

      Parameters:
        `timestampUsesLocalTimezone` - `true` if the Jaybird 1.0 handling of the calendar in corresponding setters. This is also compatible with MySQL calendar treatment.

    - #### getUserName

          java.lang.String getUserName()

      Returns:
        name of the user that will be used when connecting to the database.

    - #### setUserName

          void setUserName​(java.lang.String userName)

      Parameters:
        `userName` - name of the user that will be used when connecting to the database.

    - #### getPassword

          java.lang.String getPassword()

      Returns:
        password corresponding to the specified user name.

    - #### setPassword

          void setPassword​(java.lang.String password)

      Parameters:
        `password` - password corresponding to the specified user name.

    - #### getBuffersNumber

          int getBuffersNumber()

      Returns:
        number of cache buffers that should be allocated for this connection, should be specified for ClassicServer instances, SuperServer has a server-wide configuration parameter.

    - #### setBuffersNumber

          void setBuffersNumber​(int buffersNumber)

      Parameters:
        `buffersNumber` - number of cache buffers that should be allocated for this connection, should be specified for ClassicServer instances, SuperServer has a server-wide configuration parameter.

    - #### getNonStandardProperty

          java.lang.String getNonStandardProperty​(java.lang.String key)

      Get the property that does not have corresponding getter method by its name.
      Parameters:
        `key` - name of the property to get.
      Returns:
        value of the property.

    - #### setNonStandardProperty

          void setNonStandardProperty​(java.lang.String key,
                                      java.lang.String value)

      Set the property that does not have corresponding setter method.
      Parameters:
        `key` - name of the property to set.
        `value` - value of the property.

    - #### setNonStandardProperty

          void setNonStandardProperty​(java.lang.String propertyMapping)

      Set the property that does not have corresponding setter method.
      Parameters:
        `propertyMapping` - parameter value in the ?propertyName[=propertyValue]? form, this allows setting non-standard parameters using configuration files.

    - #### getDatabaseParameterBuffer

          DatabaseParameterBuffer getDatabaseParameterBuffer()
                                                      throws java.sql.SQLException

      Get the database parameter buffer corresponding to the current connection request information.
      Returns:
        instance of `DatabaseParameterBuffer`.
      Throws:
        `java.sql.SQLException` - if database parameter buffer cannot be created.

    - #### getTpbMapping

          java.lang.String getTpbMapping()

      Get the used TPB mapping.
      Returns:
        path to the TPB mapping.
      See Also:
        `setTpbMapping(String)`

    - #### setTpbMapping

          void setTpbMapping​(java.lang.String tpbMapping)

      Set path to the properties file with the TPB mapping. The path begins with the protocol specification followed by the path to the resource. A special protocol `"res:"` should be used to specify resource in the classpath.

      For the compatibility reasons, if no protocol is specified, classpath is used by default.

      Properties file contains a mapping between the transaction isolation level (name of the constant in the `Connection` interface and a comma-separated list of TPB parameters.
      Parameters:
        `tpbMapping` - path to the properties file.

    - #### getDefaultTransactionIsolation

          int getDefaultTransactionIsolation()

      Get the default transaction isolation level. This is the transaction isolation level for the newly created connections.
      Returns:
        default transaction isolation level.

    - #### setDefaultTransactionIsolation

          void setDefaultTransactionIsolation​(int defaultIsolationLevel)

      Set the default transaction isolation level.
      Parameters:
        `defaultIsolationLevel` - default transaction isolation level.

    - #### getDefaultIsolation

          java.lang.String getDefaultIsolation()

      Get the default transaction isolation level as string. This method is complementary to the `getDefaultTransactionIsolation()`, however it takes a string as parameter instead of a numeric constant.
      Returns:
        default transaction isolation as string.
      See Also:
        `setDefaultIsolation(String)`

    - #### setDefaultIsolation

          void setDefaultIsolation​(java.lang.String isolation)

      Set the default transaction isolation level as string. This method is complementary to the `setDefaultTransactionIsolation(int)`, however it takes a string as parameter instead of a numeric constant.

      Following strings are allowed:
      - `"TRANSACTION_READ_COMMITTED"` for a READ COMMITTED isolation level.
      - `"TRANSACTION_REPEATABLE_READ"` for a REPEATABLE READ isolation level.
      - `"TRANSACTION_SERIALIZABLE"` for a SERIALIZABLE isolation level.
      Parameters:
        `isolation` - string constant representing a default isolation level.

    - #### getTransactionParameters

          TransactionParameterBuffer getTransactionParameters​(int isolation)

      Get the transaction parameter buffer corresponding to the current connection request information.
      Parameters:
        `isolation` - transaction isolation level for which TPB should be returned.
      Returns:
        instance of `TransactionParameterBuffer`.

    - #### setTransactionParameters

          void setTransactionParameters​(int isolation,
                                        TransactionParameterBuffer tpb)

      Set transaction parameters for the specified transaction isolation level. The specified TPB is used as a default mapping for the specified isolation level.
      Parameters:
        `isolation` - transaction isolation level.
        `tpb` - instance of `TransactionParameterBuffer` containing transaction parameters.

    - #### isDefaultResultSetHoldable

          boolean isDefaultResultSetHoldable()

      Get the default ResultSet holdability.
      Returns:
        `true` when ResultSets are holdable by default, `false` not holdable.

    - #### setDefaultResultSetHoldable

          void setDefaultResultSetHoldable​(boolean isHoldable)

      Sets the default ResultSet holdability.
      Parameters:
        `isHoldable` - `true` when ResultSets are holdable by default, `false` not holdable.

    - #### getSoTimeout

          int getSoTimeout()

      Get the current Socket blocking timeout (SoTimeout).
      Returns:
        The socket blocking timeout in milliseconds (0 is 'infinite')

    - #### setSoTimeout

          void setSoTimeout​(int soTimeout)

      Set the Socket blocking timeout (SoTimeout).
      Parameters:
        `soTimeout` - Timeout in milliseconds (0 is 'infinite')

    - #### getConnectTimeout

          int getConnectTimeout()

      Get the current connect timeout.
      Returns:
        Connect timeout in seconds (0 is 'infinite', or better: OS specific timeout)

    - #### setConnectTimeout

          void setConnectTimeout​(int connectTimeout)

      Set the connect timeout.
      Parameters:
        `connectTimeout` - Connect timeout in seconds (0 is 'infinite', or better: OS specific timeout)

    - #### isUseFirebirdAutocommit

          boolean isUseFirebirdAutocommit()

      Get whether to use Firebird autocommit (experimental).
      Returns:
        `true` use Firebird autocommit

    - #### setUseFirebirdAutocommit

          void setUseFirebirdAutocommit​(boolean useFirebirdAutocommit)

      Set whether to use Firebird autocommit (experimental).
      Parameters:
        `useFirebirdAutocommit` - `true` Use Firebird autocommit

    - #### getWireCrypt

          java.lang.String getWireCrypt()

      Get the wire encryption level value.
      Returns:
        Wire encryption level (`null` implies `DEFAULT`)
      Since:
        4.0

    - #### setWireCrypt

          void setWireCrypt​(java.lang.String wireCrypt)

      Sets the wire encryption level.

      Values are defined by `WireCrypt`, values are handled case insensitive. Invalid values are accepted, but will cause an error when a connection is established.

      Parameters:
        `wireCrypt` - Wire encryption level
      Since:
        4.0

    - #### getDbCryptConfig

          java.lang.String getDbCryptConfig()

      Get the database encryption plugin configuration.
      Returns:
        Database encryption plugin configuration, meaning plugin specific
      Since:
        3.0.4

    - #### setDbCryptConfig

          void setDbCryptConfig​(java.lang.String dbCryptConfig)

      Sets the database encryption plugin configuration.
      Parameters:
        `dbCryptConfig` - Database encryption plugin configuration, meaning plugin specific
      Since:
        3.0.4

    - #### getAuthPlugins

          java.lang.String getAuthPlugins()

      Get the list of authentication plugins to try.
      Returns:
        comma-separated list of authentication plugins, or `null` for driver default
      Since:
        4.0

    - #### setAuthPlugins

          void setAuthPlugins​(java.lang.String authPlugins)

      Sets the authentication plugins to try.

      Invalid names are skipped during authentication.

      Parameters:
        `authPlugins` - comma-separated list of authentication plugins, or `null` for driver default
      Since:
        4.0

    - #### getGeneratedKeysEnabled

          java.lang.String getGeneratedKeysEnabled()

      Get the `generatedKeysEnabled` configuration.
      Returns:
        configuration value for `generatedKeysEnabled`, or `null` for driver default
      Since:
        4.0

    - #### setGeneratedKeysEnabled

          void setGeneratedKeysEnabled​(java.lang.String generatedKeysEnabled)

      Sets the `generatedKeysEnabled` configuration.
      Parameters:
        `generatedKeysEnabled` - Generated keys support configuration: `default` (or null/empty), `disabled`, `ignored`, or a list of statement types to enable (possible values: `insert`, `update`, `delete`, `update_or_insert`, `merge`)

    - #### getDataTypeBind

          java.lang.String getDataTypeBind()

      Get the `dataTypeBind` configuration.
      Returns:
        configuration value for `dataTypeBind`, or `null` for driver default
      Since:
        4.0

    - #### setDataTypeBind

          void setDataTypeBind​(java.lang.String dataTypeBind)

      Sets the `dataTypeBind` configuration.

      If the value is explicitly set to a non-null value and the connected server is Firebird 4 or higher, this will configure the data type binding with the specified values using `isc_dpb_set_bind`, which is equivalent to executing `SET BIND` statements with the values.

      See also Firebird documentation for `SET BIND`.

      Parameters:
        `dataTypeBind` - Firebird 4+ data type bind configuration, a semicolon-separated list of `<from-type> TO <to-type>`
      Since:
        4.0

    - #### getSessionTimeZone

          java.lang.String getSessionTimeZone()

      Get the `sessionTimeZone`.
      Returns:
        value for `sessionTimeZone`, or `null` for driver default (JVM default time zone)
      Since:
        4.0

    - #### setSessionTimeZone

          void setSessionTimeZone​(java.lang.String sessionTimeZone)

      Sets the `sessionTimeZone`.
      Parameters:
        `sessionTimeZone` - Firebird 4+ session time zone name (we strongly suggest to use Java compatible names only), use `"server"` to use server default time zone (note: conversion will use JVM default time zone)
      Since:
        4.0

    - #### isIgnoreProcedureType

          boolean isIgnoreProcedureType()

      Get the value for `ignoreProcedureType`.
      Returns:
        value for `ignoreProcedureType`
      Since:
        3.0.6

    - #### setIgnoreProcedureType

          void setIgnoreProcedureType​(boolean ignoreProcedureType)

      Sets the value `ignoreProcedureType`.

      When set to true, the `CallableStatement` implementation in Jaybird will ignore metadata information about the stored procedure type and default to using `EXECUTE PROCEDURE`, unless the type is explicitly set using `FirebirdCallableStatement.setSelectableProcedure(boolean)`. This can be useful in situations where a stored procedure is selectable, but tooling or code expects an executable stored procedure.

      Parameters:
        `ignoreProcedureType` - `true` Ignore procedure type
      Since:
        3.0.6

    - #### isWireCompression

          boolean isWireCompression()

      Get if wire compression should be enabled.

      Wire compression requires Firebird 3 or higher, and the server must have the zlib library. If compression cannot be negotiated, the connection will be made without wire compression.

      This property will be ignored for native connections. For native connections, the configuration in `firebird.conf` read by the client library will be used.

      Returns:
        `true` wire compression enabled
      Since:
        4.0

    - #### setWireCompression

          void setWireCompression​(boolean wireCompression)

      Sets if the connection should try to enable wire compression.
      Parameters:
        `wireCompression` - `true` enable wire compression, `false` disable wire compression (the default)
      Since:
        4.0
      See Also:
        `isWireCompression()`