Interface DatabaseConnectionProperties
-
- All Superinterfaces:
AttachmentProperties,BaseProperties
- All Known Subinterfaces:
FirebirdConnectionProperties,IConnectionProperties
- All Known Implementing Classes:
AbstractConnectionPropertiesDataSource,FBAbstractCommonDataSource,FBConnectionPoolDataSource,FbConnectionProperties,FBConnectionProperties,FbImmutableConnectionProperties,FBManagedConnectionFactory,FBSimpleDataSource,FBXADataSource
public interface DatabaseConnectionProperties extends AttachmentProperties
Properties for database connections.- Since:
- 5
- Author:
- Mark Rotteveel
-
-
Method Summary
All Methods Instance Methods Default Methods Deprecated Methods Modifier and Type Method Description default intgetBlobBufferSize()default java.lang.StringgetDatabaseName()Gets the database of the connection.default java.lang.StringgetDataTypeBind()Get thedataTypeBindconfiguration.default java.lang.StringgetDecfloatRound()default java.lang.StringgetDecfloatTraps()default java.lang.StringgetDefaultIsolation()Get the default transaction isolation level as string.default intgetDefaultTransactionIsolation()Get the default transaction isolation level.default java.lang.StringgetGeneratedKeysEnabled()Get thegeneratedKeysEnabledconfiguration.default intgetPageCacheSize()Get the page cache size.default java.lang.StringgetScrollableCursor()default intgetServerBatchBufferSize()default java.lang.StringgetSessionTimeZone()Get thesessionTimeZone.default intgetSqlDialect()default java.lang.StringgetTpbMapping()Get the used TPB mapping.default booleanisColumnLabelForName()Gets the current setting ofcolumnLabelForNamedefault booleanisDefaultResultSetHoldable()Get whether ResultSets are holdable by default.default booleanisExtendedMetadata()default booleanisIgnoreProcedureType()Get the value forignoreProcedureType.default booleanisTimestampUsesLocalTimezone()Deprecated.This property has unclear semantics and will be removed in Jaybird 6default booleanisUseFirebirdAutocommit()Get whether to use Firebird autocommit (experimental).default booleanisUseServerBatch()default booleanisUseStreamBlobs()default voidsetBlobBufferSize(int blobBufferSize)default voidsetColumnLabelForName(boolean columnLabelForName)Set ifResultSetMetaData.getColumnName(int)returns thecolumnLabelinstead of thecolumnName.default voidsetDatabaseName(java.lang.String databaseName)Sets the database of the connectiondefault voidsetDataTypeBind(java.lang.String dataTypeBind)Sets thedataTypeBindconfiguration.default voidsetDecfloatRound(java.lang.String decfloatRound)Sets theDECFLOATrounding modedefault voidsetDecfloatTraps(java.lang.String decfloatTraps)Sets theDECFLOATerror traps.default voidsetDefaultIsolation(java.lang.String isolation)Set the default transaction isolation level as string.default voidsetDefaultResultSetHoldable(boolean defaultResultSetHoldable)Set ifResultSetshould beResultSet.HOLD_CURSORS_OVER_COMMITby default.default voidsetDefaultTransactionIsolation(int defaultIsolationLevel)Set the default transaction isolation level.default voidsetExtendedMetadata(boolean extendedMetadata)Sets if certain metadata classes will perform additional queries to enrich the information for certain types.default voidsetGeneratedKeysEnabled(java.lang.String generatedKeysEnabled)Sets thegeneratedKeysEnabledconfiguration.default voidsetIgnoreProcedureType(boolean ignoreProcedureType)Sets the valueignoreProcedureType.default voidsetPageCacheSize(int pageCacheSize)Set the page cache size.default voidsetScrollableCursor(java.lang.String scrollableCursor)Sets the type of scrollable cursor.default voidsetServerBatchBufferSize(int serverBatchBufferSize)Sets the server batch buffer size (if server batch is supported and enabled).default voidsetSessionTimeZone(java.lang.String sessionTimeZone)Sets thesessionTimeZone.default voidsetSqlDialect(int sqlDialect)default voidsetTimestampUsesLocalTimezone(boolean timestampUsesLocalTimezone)Deprecated.This property has unclear semantics and will be removed in Jaybird 6default voidsetTpbMapping(java.lang.String tpbMapping)Set path to the properties file with the TPB mapping.default voidsetUseFirebirdAutocommit(boolean useFirebirdAutocommit)Set whether to use Firebird autocommit (experimental).default voidsetUseServerBatch(boolean useServerBatch)Sets whether to use server-side batch support, if available.default voidsetUseStreamBlobs(boolean useStreamBlobs)-
Methods inherited from interface org.firebirdsql.jaybird.props.AttachmentProperties
getAuthPlugins, getCharSet, getConnectTimeout, getDbCryptConfig, getEncoding, getParallelWorkers, getPassword, getPortNumber, getProcessId, getProcessName, getRoleName, getServerName, getSocketBufferSize, getSoTimeout, getType, getUser, getWireCrypt, isWireCompression, setAuthPlugins, setCharSet, setConnectTimeout, setDbCryptConfig, setEncoding, setParallelWorkers, setPassword, setPortNumber, setProcessId, setProcessName, setRoleName, setServerName, setSocketBufferSize, setSoTimeout, setType, setUser, setWireCompression, setWireCrypt
-
Methods inherited from interface org.firebirdsql.jaybird.props.BaseProperties
connectionPropertyValues, getBooleanProperty, getBooleanProperty, getIntProperty, getIntProperty, getProperty, getProperty, setBooleanProperty, setIntProperty, setProperty
-
-
-
-
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 connectionWhen
serverNameisnull, 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 thejdbc: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
fbclientconnection URLs — NATIVE (EMBEDDED will behave as NATIVE, protocols like PURE_JAVA may interpret the protocol name as a host name - Custom
typeimplementations may support other URL formats
Some protocols, for example PURE_JAVA, when
serverNameis not set, butdatabaseNamedoesn't seem to contain a host name, may default to attempting to connect to localhost withdatabaseNameas the database path or alias.When
serverNameis 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
0indicates 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
0if 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
0indicates 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 thedataTypeBindconfiguration.- Returns:
- configuration value for
dataTypeBind, ornullfor driver default - Since:
- 4.0
-
setDataTypeBind
default void setDataTypeBind(java.lang.String dataTypeBind)
Sets thedataTypeBindconfiguration.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 executingSET BINDstatements 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 thesessionTimeZone.- Returns:
- value for
sessionTimeZone, ornullfor driver default (JVM default time zone) - Since:
- 4.0
-
setSessionTimeZone
default void setSessionTimeZone(java.lang.String sessionTimeZone)
Sets thesessionTimeZone.- 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:
trueif stream blobs should be created, otherwisefalse.
-
setUseStreamBlobs
default void setUseStreamBlobs(boolean useStreamBlobs)
- Parameters:
useStreamBlobs-trueif stream blobs should be created, otherwisefalse.
-
isDefaultResultSetHoldable
default boolean isDefaultResultSetHoldable()
Get whether ResultSets are holdable by default.- Returns:
trueResultSets by default areResultSet.HOLD_CURSORS_OVER_COMMIT,false(default), ResultSets areResultSet.CLOSE_CURSORS_AT_COMMIT
-
setDefaultResultSetHoldable
default void setDefaultResultSetHoldable(boolean defaultResultSetHoldable)
Set ifResultSetshould beResultSet.HOLD_CURSORS_OVER_COMMITby default.- Parameters:
defaultResultSetHoldable-trueResultSets are holdable,false(default) ResultSets areResultSet.CLOSE_CURSORS_AT_COMMIT
-
isUseFirebirdAutocommit
default boolean isUseFirebirdAutocommit()
Get whether to use Firebird autocommit (experimental).- Returns:
trueuse Firebird autocommit- Since:
- 2.2.9
-
setUseFirebirdAutocommit
default void setUseFirebirdAutocommit(boolean useFirebirdAutocommit)
Set whether to use Firebird autocommit (experimental).- Parameters:
useFirebirdAutocommit-trueUse Firebird autocommit- Since:
- 2.2.9
-
isColumnLabelForName
default boolean isColumnLabelForName()
Gets the current setting ofcolumnLabelForName- Returns:
falseJDBC compliant behavior (columnNameis returned),truecompatibility option (columnLabelis returned)- Since:
- 2.2.1
- See Also:
setColumnLabelForName(boolean)
-
setColumnLabelForName
default void setColumnLabelForName(boolean columnLabelForName)
Set ifResultSetMetaData.getColumnName(int)returns thecolumnLabelinstead of thecolumnName.The default behaviour (with
columnLabelForName=falseis JDBC-compliant. The behavior for valuetrueis to provide compatibility with tools with a wrong expectation.- Parameters:
columnLabelForName-falseJDBC compliant behavior (columnNameis returned),truecompatibility option (columnLabelis returned)- Since:
- 2.2.1
-
getGeneratedKeysEnabled
default java.lang.String getGeneratedKeysEnabled()
Get thegeneratedKeysEnabledconfiguration.- Returns:
- configuration value for
generatedKeysEnabled, ornullfor driver default - Since:
- 4.0
-
setGeneratedKeysEnabled
default void setGeneratedKeysEnabled(java.lang.String generatedKeysEnabled)
Sets thegeneratedKeysEnabledconfiguration.- 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 forignoreProcedureType.- Returns:
- value for
ignoreProcedureType - Since:
- 3.0.6
-
setIgnoreProcedureType
default void setIgnoreProcedureType(boolean ignoreProcedureType)
Sets the valueignoreProcedureType.When set to true, the
CallableStatementimplementation in Jaybird will ignore metadata information about the stored procedure type and default to usingEXECUTE PROCEDURE, unless the type is explicitly set usingFirebirdCallableStatement.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-trueIgnore procedure type- Since:
- 3.0.6
-
getDecfloatRound
default java.lang.String getDecfloatRound()
- Returns:
- the server-side
DECFLOATrounding mode,nullapplies the Firebird server default
-
setDecfloatRound
default void setDecfloatRound(java.lang.String decfloatRound)
Sets theDECFLOATrounding mode- Parameters:
decfloatRound- Firebird 4+ server-sideDECFLOATrounding mode (ceiling, up, half_up, half_even, half_down, down, floor, reround);nullto apply the Firebird server default (half_upin Firebird 4)
-
getDecfloatTraps
default java.lang.String getDecfloatTraps()
- Returns:
- the server-side
DECFLOATerror traps,nullapplies the Firebird server default
-
setDecfloatTraps
default void setDecfloatTraps(java.lang.String decfloatTraps)
Sets theDECFLOATerror traps.- Parameters:
decfloatTraps- Firebird 4+ server-sideDECFLOATerror traps; comma-separated list with optionsDivision_by_zero, Inexact, Invalid_operation, Overflow, Underflow;nullto apply Firebird server default (Division_by_zero,Invalid_operation,Overflowin 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 theConnectioninterface 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 togetDefaultTransactionIsolation(), 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 tosetDefaultTransactionIsolation(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:
trueif 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 6Sets the valuetimestampUsesLocalTimezone.- Parameters:
timestampUsesLocalTimezone-trueif 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) orSERVER(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 rowsSERVER- user server-side scrollable cursor (requires Firebird 5.0 and pure-java connection). Falls back toEMULATEDbehaviour when server-side support is not available, or when holdable cursors are requested
- Parameters:
scrollableCursor- Scrollable cursor type, one ofEMULATEDorSERVER(case-insensitive)
-
isUseServerBatch
default boolean isUseServerBatch()
- Returns:
true(default) use server-side batch if supported by server,falsealways 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 aCallableStatement, 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,falsealways use emulated batch
-
getServerBatchBufferSize
default int getServerBatchBufferSize()
- Returns:
- batch buffer size in bytes,
< 0to 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< 0to set server-side default (16MB as of Firebird 4.0), use0to use server-side maximum (256MB as of Firebird 4.0), values exceeding server-side maximum will set server-side maximum
-
isExtendedMetadata
default boolean isExtendedMetadata()
- Returns:
true(default) if metadata (e.g.ResultSetMetaData) will perform additional queries for more detailed information,falseif only the available bind information will be used- Since:
- 5.0.5
- See Also:
setExtendedMetadata(boolean)
-
setExtendedMetadata
default void setExtendedMetadata(boolean extendedMetadata)
Sets if certain metadata classes will perform additional queries to enrich the information for certain types.Currently this is used only by
ResultSetMetaDatafor itsgetPrecisionandisAutoIncrementmethods. If disabled, these methods will return an estimated precision, orfalsefor auto-increment instead of actual precision and identity column state information.Disabling this setting may improve performance of querying metadata information, in exchange for less precise information.
- Parameters:
extendedMetadata-true(default) - metadata (e.g.ResultSetMetaData) will perform additional queries for more detailed information,false- only the available bind information will be used- Since:
- 5.0.5
-
-