Interface DatabaseConnectionProperties

    • Method Detail

      • getDatabaseName

        default java.lang.String getDatabaseName()
        Gets the database of the connection.
        Returns:
        database name
        See Also:
        setDatabaseName(String)
      • setDatabaseName

        default void setDatabaseName​(java.lang.String databaseName)
        Sets the database of the connection

        When serverName is null, the value is taken as the URL of the database, and exact interpretation depends on the protocol implementation (type). Basically, the URL would be the JDBC URL, but without the jdbc:firebird[sql]:[subprotocol:] prefix and without connection properties. Examples:

        • //localhost/employee — PURE_JAVA, OOREMOTE, NATIVE (for NATIVE, this format is parsed and transformed to the next example)
        • localhost:employee — NATIVE, PURE_JAVA, OOREMOTE
        • //localhost:3051/employee — PURE_JAVA, OOREMOTE, NATIVE (for NATIVE, this format is parsed and transformed to the next example)
        • localhost/3051:employee — NATIVE, PURE_JAVA, OOREMOTE
        • /path/to/your.fdb — NATIVE, EMBEDDED, PURE_JAVA, OOREMOTE (PURE_JAVA and OOREMOTE will use localhost as serverName, depending on the Firebird version and platform, NATIVE may use Firebird Embedded)
        • C:\path\to\your.fdb — NATIVE, EMBEDDED (protocols like PURE_JAVA may attempt to connect to a server called C, depending on the Firebird version and platform, NATIVE may use Firebird Embedded)
        • C:/path/to/your.fdb — NATIVE, EMBEDDED (protocols like PURE_JAVA may attempt to connect to a server called C, depending on the Firebird version and platform, NATIVE may use Firebird Embedded)
        • xnet://employee — NATIVE (EMBEDDED will behave as NATIVE, protocols like PURE_JAVA may attempt to connect to a server called xnet)
        • other Firebird fbclient connection URLs — NATIVE (EMBEDDED will behave as NATIVE, protocols like PURE_JAVA may interpret the protocol name as a host name
        • Custom type implementations may support other URL formats

        Some protocols, for example PURE_JAVA, when serverName is not set, but databaseName doesn't seem to contain a host name, may default to attempting to connect to localhost with databaseName as the database path or alias.

        When serverName is set, the value is taken as the database path or alias. Examples:

        • employee
        • /path/to/your.fdb
        • C:\path\to\your.fdb
        • C:/path/to/your.fdb
        • relative/path/to/your.fdb — not recommended
        Parameters:
        databaseName - database name
      • getSqlDialect

        default int getSqlDialect()
        Returns:
        SQL dialect of the client connection
      • setSqlDialect

        default void setSqlDialect​(int sqlDialect)
        Parameters:
        sqlDialect - SQL dialect of the client connection.
      • getPageCacheSize

        default int getPageCacheSize()
        Get the page cache size.

        A value of 0 indicates that the value is not set, and that the server default is used.

        This option is only relevant for Firebird implementations with per connection cache (eg Classic)

        NOTE: Implementer should take care to return 0 if the value hasn't been set yet.

        Returns:
        size of cache in pages for this connection, can be specified for Classic and SuperClassic instances, ignored for SuperServer as the cache is shared; 0 when not set
      • setPageCacheSize

        default void setPageCacheSize​(int pageCacheSize)
        Set the page cache size.

        A value of 0 indicates that the value is not set, and that the server default is used.

        This option is only relevant for Firebird implementations with per connection cache (eg Classic).

        Parameters:
        pageCacheSize - size of cache in pages for this connection, can be specified for Classic and SuperClassic instances ignored for SuperServer as the cache is shared.
      • getDataTypeBind

        default java.lang.String getDataTypeBind()
        Get the dataTypeBind configuration.
        Returns:
        configuration value for dataTypeBind, or null for driver default
        Since:
        4.0
      • setDataTypeBind

        default 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

        default java.lang.String getSessionTimeZone()
        Get the sessionTimeZone.
        Returns:
        value for sessionTimeZone, or null for driver default (JVM default time zone)
        Since:
        4.0
      • setSessionTimeZone

        default 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
      • getBlobBufferSize

        default int getBlobBufferSize()
        Returns:
        BLOB buffer size in bytes.
      • setBlobBufferSize

        default void setBlobBufferSize​(int blobBufferSize)
        Parameters:
        blobBufferSize - size of the BLOB buffer in bytes.
      • isUseStreamBlobs

        default boolean isUseStreamBlobs()
        Returns:
        true if stream blobs should be created, otherwise false.
      • setUseStreamBlobs

        default void setUseStreamBlobs​(boolean useStreamBlobs)
        Parameters:
        useStreamBlobs - true if stream blobs should be created, otherwise false.
      • isDefaultResultSetHoldable

        default boolean isDefaultResultSetHoldable()
        Get whether ResultSets are holdable by default.
        Returns:
        true ResultSets by default are ResultSet.HOLD_CURSORS_OVER_COMMIT, false (default), ResultSets are ResultSet.CLOSE_CURSORS_AT_COMMIT
      • setDefaultResultSetHoldable

        default void setDefaultResultSetHoldable​(boolean defaultResultSetHoldable)
        Set if ResultSet should be ResultSet.HOLD_CURSORS_OVER_COMMIT by default.
        Parameters:
        defaultResultSetHoldable - true ResultSets are holdable, false (default) ResultSets are ResultSet.CLOSE_CURSORS_AT_COMMIT
      • isUseFirebirdAutocommit

        default boolean isUseFirebirdAutocommit()
        Get whether to use Firebird autocommit (experimental).
        Returns:
        true use Firebird autocommit
        Since:
        2.2.9
      • setUseFirebirdAutocommit

        default void setUseFirebirdAutocommit​(boolean useFirebirdAutocommit)
        Set whether to use Firebird autocommit (experimental).
        Parameters:
        useFirebirdAutocommit - true Use Firebird autocommit
        Since:
        2.2.9
      • isColumnLabelForName

        default boolean isColumnLabelForName()
        Gets the current setting of columnLabelForName
        Returns:
        false JDBC compliant behavior (columnName is returned), true compatibility option (columnLabel is returned)
        Since:
        2.2.1
        See Also:
        setColumnLabelForName(boolean)
      • setColumnLabelForName

        default void setColumnLabelForName​(boolean columnLabelForName)
        Set if ResultSetMetaData.getColumnName(int) returns the columnLabel instead of the columnName.

        The default behaviour (with columnLabelForName=false is JDBC-compliant. The behavior for value true is to provide compatibility with tools with a wrong expectation.

        Parameters:
        columnLabelForName - false JDBC compliant behavior (columnName is returned), true compatibility option (columnLabel is returned)
        Since:
        2.2.1
      • getGeneratedKeysEnabled

        default java.lang.String getGeneratedKeysEnabled()
        Get the generatedKeysEnabled configuration.
        Returns:
        configuration value for generatedKeysEnabled, or null for driver default
        Since:
        4.0
      • setGeneratedKeysEnabled

        default 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)
        Since:
        4.0
      • isIgnoreProcedureType

        default boolean isIgnoreProcedureType()
        Get the value for ignoreProcedureType.
        Returns:
        value for ignoreProcedureType
        Since:
        3.0.6
      • setIgnoreProcedureType

        default 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
      • getDecfloatRound

        default java.lang.String getDecfloatRound()
        Returns:
        the server-side DECFLOAT rounding mode, null applies the Firebird server default
      • setDecfloatRound

        default void setDecfloatRound​(java.lang.String decfloatRound)
        Sets the DECFLOAT rounding mode
        Parameters:
        decfloatRound - Firebird 4+ server-side DECFLOAT rounding mode (ceiling, up, half_up, half_even, half_down, down, floor, reround); null to apply the Firebird server default (half_up in Firebird 4)
      • getDecfloatTraps

        default java.lang.String getDecfloatTraps()
        Returns:
        the server-side DECFLOAT error traps, null applies the Firebird server default
      • setDecfloatTraps

        default void setDecfloatTraps​(java.lang.String decfloatTraps)
        Sets the DECFLOAT error traps.
        Parameters:
        decfloatTraps - Firebird 4+ server-side DECFLOAT error traps; comma-separated list with options Division_by_zero, Inexact, Invalid_operation, Overflow, Underflow; null to apply Firebird server default (Division_by_zero,Invalid_operation,Overflow in Firebird 4)
      • getTpbMapping

        default java.lang.String getTpbMapping()
        Get the used TPB mapping.
        Returns:
        path to the TPB mapping
        See Also:
        setTpbMapping(String)
      • setTpbMapping

        default 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 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
        Throws:
        java.lang.IllegalStateException - May be thrown when the mapping has already been initialized (not all implementations do this)
      • getDefaultTransactionIsolation

        default 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

        default void setDefaultTransactionIsolation​(int defaultIsolationLevel)
        Set the default transaction isolation level.
        Parameters:
        defaultIsolationLevel - default transaction isolation level.
      • getDefaultIsolation

        default java.lang.String getDefaultIsolation()
        Get the default transaction isolation level as string. This method is complementary to getDefaultTransactionIsolation(), however it returns a string name instead of a numeric constant.
        Returns:
        default transaction isolation as string.
        See Also:
        setDefaultIsolation(String)
      • setDefaultIsolation

        default void setDefaultIsolation​(java.lang.String isolation)
        Set the default transaction isolation level as string. This method is complementary to 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.
        • Integer string values matching the isolation levels

        Parameters:
        isolation - string constant representing a default isolation level.
      • isTimestampUsesLocalTimezone

        @Deprecated
        default boolean isTimestampUsesLocalTimezone()
        Deprecated.
        This property has unclear semantics and will be removed in Jaybird 6
        Returns:
        true if the Jaybird 1.0 handling of the calendar in corresponding setters. This is also compatible with MySQL calendar treatment.
      • setTimestampUsesLocalTimezone

        @Deprecated
        default void setTimestampUsesLocalTimezone​(boolean timestampUsesLocalTimezone)
        Deprecated.
        This property has unclear semantics and will be removed in Jaybird 6
        Sets the value timestampUsesLocalTimezone.
        Parameters:
        timestampUsesLocalTimezone - true if the Jaybird 1.0 handling of the calendar in corresponding setters. This is also compatible with MySQL calendar treatment.
      • getScrollableCursor

        default java.lang.String getScrollableCursor()
        Returns:
        Configuration of scrollable cursors, either EMULATED (default) or SERVER (case-insensitive)
        See Also:
        setScrollableCursor(String)
      • setScrollableCursor

        default void setScrollableCursor​(java.lang.String scrollableCursor)
        Sets the type of scrollable cursor.

        Possible values are (case-insensitive):

        • EMULATED (default) - emulate scrollable cursors in memory by fetching all rows
        • SERVER - user server-side scrollable cursor (requires Firebird 5.0 and pure-java connection). Falls back to EMULATED behaviour when server-side support is not available, or when holdable cursors are requested
        Parameters:
        scrollableCursor - Scrollable cursor type, one of EMULATED or SERVER (case-insensitive)
      • isUseServerBatch

        default boolean isUseServerBatch()
        Returns:
        true (default) use server-side batch if supported by server, false always use emulated batch
        See Also:
        setUseServerBatch(boolean)
      • setUseServerBatch

        default void setUseServerBatch​(boolean useServerBatch)
        Sets whether to use server-side batch support, if available.

        Currently, server-side batch is only supported with Firebird 4.0 or higher, with a pure Java connection, using a PreparedStatement, but not a CallableStatement, and only when not requesting generated keys.

        The implementation will fall back to emulated batches if either the server version doesn't support batches, or if the statement cannot be executed using the server-side batch mechanism for other reasons (e.g. requesting generated keys).

        Parameters:
        useServerBatch - true, use server-side batch support if possible, false always use emulated batch
      • getServerBatchBufferSize

        default int getServerBatchBufferSize()
        Returns:
        batch buffer size in bytes, < 0 to use server-side default (16MB as of Firebird 4.0), 0 (default) to use server-side maximum (256MB as of Firebird 4.0), values exceeding server-side maximum will set server-side maximum
        See Also:
        setServerBatchBufferSize(int)
      • setServerBatchBufferSize

        default void setServerBatchBufferSize​(int serverBatchBufferSize)
        Sets the server batch buffer size (if server batch is supported and enabled).
        Parameters:
        serverBatchBufferSize - server batch buffer size in bytes, use < 0 to set server-side default (16MB as of Firebird 4.0), use 0 to use server-side maximum (256MB as of Firebird 4.0), values exceeding server-side maximum will set server-side maximum