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 int
getBlobBufferSize()
default java.lang.String
getDatabaseName()
Gets the database of the connection.default java.lang.String
getDataTypeBind()
Get thedataTypeBind
configuration.default java.lang.String
getDecfloatRound()
default java.lang.String
getDecfloatTraps()
default java.lang.String
getDefaultIsolation()
Get the default transaction isolation level as string.default int
getDefaultTransactionIsolation()
Get the default transaction isolation level.default java.lang.String
getGeneratedKeysEnabled()
Get thegeneratedKeysEnabled
configuration.default int
getPageCacheSize()
Get the page cache size.default java.lang.String
getScrollableCursor()
default int
getServerBatchBufferSize()
default java.lang.String
getSessionTimeZone()
Get thesessionTimeZone
.default int
getSqlDialect()
default java.lang.String
getTpbMapping()
Get the used TPB mapping.default boolean
isColumnLabelForName()
Gets the current setting ofcolumnLabelForName
default boolean
isDefaultResultSetHoldable()
Get whether ResultSets are holdable by default.default boolean
isExtendedMetadata()
default boolean
isIgnoreProcedureType()
Get the value forignoreProcedureType
.default boolean
isTimestampUsesLocalTimezone()
Deprecated.This property has unclear semantics and will be removed in Jaybird 6default boolean
isUseFirebirdAutocommit()
Get whether to use Firebird autocommit (experimental).default boolean
isUseServerBatch()
default boolean
isUseStreamBlobs()
default void
setBlobBufferSize(int blobBufferSize)
default void
setColumnLabelForName(boolean columnLabelForName)
Set ifResultSetMetaData.getColumnName(int)
returns thecolumnLabel
instead of thecolumnName
.default void
setDatabaseName(java.lang.String databaseName)
Sets the database of the connectiondefault void
setDataTypeBind(java.lang.String dataTypeBind)
Sets thedataTypeBind
configuration.default void
setDecfloatRound(java.lang.String decfloatRound)
Sets theDECFLOAT
rounding modedefault void
setDecfloatTraps(java.lang.String decfloatTraps)
Sets theDECFLOAT
error traps.default void
setDefaultIsolation(java.lang.String isolation)
Set the default transaction isolation level as string.default void
setDefaultResultSetHoldable(boolean defaultResultSetHoldable)
Set ifResultSet
should beResultSet.HOLD_CURSORS_OVER_COMMIT
by default.default void
setDefaultTransactionIsolation(int defaultIsolationLevel)
Set the default transaction isolation level.default void
setExtendedMetadata(boolean extendedMetadata)
Sets if certain metadata classes will perform additional queries to enrich the information for certain types.default void
setGeneratedKeysEnabled(java.lang.String generatedKeysEnabled)
Sets thegeneratedKeysEnabled
configuration.default void
setIgnoreProcedureType(boolean ignoreProcedureType)
Sets the valueignoreProcedureType
.default void
setPageCacheSize(int pageCacheSize)
Set the page cache size.default void
setScrollableCursor(java.lang.String scrollableCursor)
Sets the type of scrollable cursor.default void
setServerBatchBufferSize(int serverBatchBufferSize)
Sets the server batch buffer size (if server batch is supported and enabled).default void
setSessionTimeZone(java.lang.String sessionTimeZone)
Sets thesessionTimeZone
.default void
setSqlDialect(int sqlDialect)
default void
setTimestampUsesLocalTimezone(boolean timestampUsesLocalTimezone)
Deprecated.This property has unclear semantics and will be removed in Jaybird 6default void
setTpbMapping(java.lang.String tpbMapping)
Set path to the properties file with the TPB mapping.default void
setUseFirebirdAutocommit(boolean useFirebirdAutocommit)
Set whether to use Firebird autocommit (experimental).default void
setUseServerBatch(boolean useServerBatch)
Sets whether to use server-side batch support, if available.default void
setUseStreamBlobs(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
serverName
isnull
, 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
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, butdatabaseName
doesn't seem to contain a host name, may default to attempting to connect to localhost withdatabaseName
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 thedataTypeBind
configuration.- Returns:
- configuration value for
dataTypeBind
, ornull
for driver default - Since:
- 4.0
-
setDataTypeBind
default void setDataTypeBind(java.lang.String dataTypeBind)
Sets thedataTypeBind
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 executingSET 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 thesessionTimeZone
.- Returns:
- value for
sessionTimeZone
, ornull
for 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:
true
if stream blobs should be created, otherwisefalse
.
-
setUseStreamBlobs
default void setUseStreamBlobs(boolean useStreamBlobs)
- Parameters:
useStreamBlobs
-true
if stream blobs should be created, otherwisefalse
.
-
isDefaultResultSetHoldable
default boolean isDefaultResultSetHoldable()
Get whether ResultSets are holdable by default.- Returns:
true
ResultSets by default areResultSet.HOLD_CURSORS_OVER_COMMIT
,false
(default), ResultSets areResultSet.CLOSE_CURSORS_AT_COMMIT
-
setDefaultResultSetHoldable
default void setDefaultResultSetHoldable(boolean defaultResultSetHoldable)
Set ifResultSet
should beResultSet.HOLD_CURSORS_OVER_COMMIT
by default.- Parameters:
defaultResultSetHoldable
-true
ResultSets are holdable,false
(default) ResultSets areResultSet.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 ofcolumnLabelForName
- 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 ifResultSetMetaData.getColumnName(int)
returns thecolumnLabel
instead of thecolumnName
.The default behaviour (with
columnLabelForName=false
is JDBC-compliant. The behavior for valuetrue
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 thegeneratedKeysEnabled
configuration.- Returns:
- configuration value for
generatedKeysEnabled
, ornull
for driver default - Since:
- 4.0
-
setGeneratedKeysEnabled
default void setGeneratedKeysEnabled(java.lang.String generatedKeysEnabled)
Sets thegeneratedKeysEnabled
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 forignoreProcedureType
.- Returns:
- value for
ignoreProcedureType
- Since:
- 3.0.6
-
setIgnoreProcedureType
default void setIgnoreProcedureType(boolean ignoreProcedureType)
Sets the valueignoreProcedureType
.When set to true, the
CallableStatement
implementation 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
-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 theDECFLOAT
rounding mode- Parameters:
decfloatRound
- Firebird 4+ server-sideDECFLOAT
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 theDECFLOAT
error traps.- Parameters:
decfloatTraps
- Firebird 4+ server-sideDECFLOAT
error traps; comma-separated list with optionsDivision_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 theConnection
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 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:
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 6Sets the valuetimestampUsesLocalTimezone
.- 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) 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 toEMULATED
behaviour when server-side support is not available, or when holdable cursors are requested
- Parameters:
scrollableCursor
- Scrollable cursor type, one ofEMULATED
orSERVER
(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 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,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), use0
to 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,false
if 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
ResultSetMetaData
for itsgetPrecision
andisAutoIncrement
methods. If disabled, these methods will return an estimated precision, orfalse
for 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
-
-