org.firebirdsql.ds

## Class FBSimpleDataSource

- java.lang.Object
- - org.firebirdsql.ds.RootCommonDataSource
  - - org.firebirdsql.ds.FBSimpleDataSource

All Implemented Interfaces:
  java.io.Serializable, java.sql.Wrapper, javax.naming.Referenceable, javax.sql.CommonDataSource, javax.sql.DataSource, FirebirdConnectionProperties

    public class FBSimpleDataSource
    extends RootCommonDataSource
    implements javax.sql.DataSource, java.io.Serializable, javax.resource.Referenceable, FirebirdConnectionProperties

This is a simple implementation of `DataSource` interface. Connections are physically opened in `DataSource.getConnection()` method and physically closed in `Connection.close()` method.

Version:
  1.0
Author:
  Roman Rokytskyy, David Jencks
See Also:
  Serialized Form

### Field Summary

Fields
`protected java.lang.String` `description`
`protected FBDataSource` `ds`
`protected javax.naming.Reference` `jndiReference`
`protected FBManagedConnectionFactory` `mcf`

### Constructor Summary

Constructors
Constructor and Description
`FBSimpleDataSource()` Create instance of this class.
`FBSimpleDataSource(GDSType type)` Create instance of this class.

### Method Summary

Methods
`java.lang.String` `getAuthPlugins()` Get the list of authentication plugins to try.
`java.lang.Integer` `getBlobBufferLength()` Get buffer length for the BLOB fields.
`int` `getBlobBufferSize()`
`int` `getBuffersNumber()`
`java.lang.String` `getCharSet()`
`java.sql.Connection` `getConnection()` Get JDBC connection with default credentials.
`java.sql.Connection` `getConnection(java.lang.String username, java.lang.String password)` Get JDBC connection with the specified credentials.
`int` `getConnectTimeout()` Get the current connect timeout.
`java.lang.String` `getDatabase()` Get name of the database.
`java.lang.String` `getDatabaseName()` Deprecated. use `getDatabase()` instead for the sake of naming compatibility.
`DatabaseParameterBuffer` `getDatabaseParameterBuffer()` Get the database parameter buffer corresponding to the current connection request information.
`protected javax.sql.DataSource` `getDataSource()` Get underlying connection factory (in our case instance of `FBDataSource` class) that will provide JDBC connections.
`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` `getDescription()` Get description of this datasource.
`java.lang.String` `getEncoding()` Get encoding for connections produced by this data source.
`java.lang.String` `getGeneratedKeysEnabled()` Get the `generatedKeysEnabled` configuration.
`int` `getLoginTimeout()`
`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()` Get password used in `getConnection()` method.
`javax.naming.Reference` `getReference()` Get previously set JNDI reference.
`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` `getUser()` Deprecated. use `getUserName()` instead for the sake of naming compatibility.
`java.lang.String` `getUserName()` Get user name that is used in `getConnection()` method.
`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.
`boolean` `isWrapperFor(java.lang.Class<?> iface)`
`void` `setAuthPlugins(java.lang.String authPlugins)` Sets the authentication plugins to try.
`void` `setBlobBufferLength(java.lang.Integer length)` Set BLOB buffer length.
`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 name)` Set database name.
`void` `setDatabaseName(java.lang.String name)` Deprecated. use `setDatabase(String)` instead for the sake of naming compatibility.
`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` `setDescription(java.lang.String description)` Set description of this datasource.
`void` `setEncoding(java.lang.String encoding)` Set encoding for connections produced by this data source.
`void` `setGeneratedKeysEnabled(java.lang.String generatedKeysEnabled)` Sets the `generatedKeysEnabled` configuration.
`void` `setIgnoreProcedureType(boolean ignoreProcedureType)` Sets the value `ignoreProcedureType`.
`void` `setLoginTimeout(int loginTimeout)`
`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)` Set password that will be used in the `getConnection()` method.
`void` `setReference(javax.naming.Reference reference)` Set JNDI reference for this data source.
`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` `setUser(java.lang.String user)` Deprecated. use `setUserName(String)` instead for the sake of naming compatibility.
`void` `setUserName(java.lang.String userName)` Set user name that will be used in `getConnection()` method.
`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.
`<T> T` `unwrap(java.lang.Class<T> iface)`

### Methods inherited from class org.firebirdsql.ds.RootCommonDataSource

`getLogWriter, getParentLogger, setLogWriter`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface javax.sql.CommonDataSource

`getLogWriter, getParentLogger, setLogWriter`

### Field Detail

#### mcf

    protected FBManagedConnectionFactory mcf

#### ds

    protected transient FBDataSource ds

#### jndiReference

    protected javax.naming.Reference jndiReference

#### description

    protected java.lang.String description

### Constructor Detail

#### FBSimpleDataSource

    public FBSimpleDataSource()

Create instance of this class.

#### FBSimpleDataSource

    public FBSimpleDataSource(GDSType type)

Create instance of this class.

### Method Detail

#### getBlobBufferLength

    public java.lang.Integer getBlobBufferLength()

Get buffer length for the BLOB fields.

Returns:
  length of BLOB buffer.

#### setBlobBufferLength

    public void setBlobBufferLength(java.lang.Integer length)

Set BLOB buffer length. This value influences the performance when working with BLOB fields.

Parameters:
  `length` - new length of the BLOB buffer.

#### getDatabaseName

    @Deprecated
    public java.lang.String getDatabaseName()

Deprecated. use `getDatabase()` instead for the sake of naming compatibility.
Get name of the database.

Returns:
  database name, value is equal to the part of full JDBC URL without the `jdbc:firebirdsql:` part.

#### setDatabaseName

    @Deprecated
    public void setDatabaseName(java.lang.String name)

Deprecated. use `setDatabase(String)` instead for the sake of naming compatibility.
Set database name.

Parameters:
  `name` - connection URL without `"jdbc:firebirdsql:"` prefix (`"//localhost:3050/c:/database/employee.fdb"`) for example).

#### getDatabase

    public java.lang.String getDatabase()

Get name of the database.

Specified by:
  `getDatabase` in interface `FirebirdConnectionProperties`
Returns:
  database name, value is equal to the part of full JDBC URL without the `jdbc:firebirdsql:` part.

#### setDatabase

    public void setDatabase(java.lang.String name)

Set database name.

Specified by:
  `setDatabase` in interface `FirebirdConnectionProperties`
Parameters:
  `name` - connection URL without `"jdbc:firebirdsql:"` prefix (`"//localhost:3050/c:/database/employee.fdb"`) for example).

#### getUser

    @Deprecated
    public java.lang.String getUser()

Deprecated. use `getUserName()` instead for the sake of naming compatibility.
Get user name that is used in `getConnection()` method.

Returns:
  default user name.

#### setUser

    @Deprecated
    public void setUser(java.lang.String user)

Deprecated. use `setUserName(String)` instead for the sake of naming compatibility.
Set user name that will be used in `getConnection()` method.

Parameters:
  `user` - default user name.

#### getUserName

    public java.lang.String getUserName()

Get user name that is used in `getConnection()` method.

Specified by:
  `getUserName` in interface `FirebirdConnectionProperties`
Returns:
  default user name.

#### setUserName

    public void setUserName(java.lang.String userName)

Set user name that will be used in `getConnection()` method.

Specified by:
  `setUserName` in interface `FirebirdConnectionProperties`
Parameters:
  `userName` - default user name.

#### getPassword

    public java.lang.String getPassword()

Get password used in `getConnection()` method.

Specified by:
  `getPassword` in interface `FirebirdConnectionProperties`
Returns:
  password corresponding to the user name returned by `getUserName()`.

#### setPassword

    public void setPassword(java.lang.String password)

Set password that will be used in the `getConnection()` method.

Specified by:
  `setPassword` in interface `FirebirdConnectionProperties`
Parameters:
  `password` - password corresponding to the user name set in `setUserName(String)`.

#### getEncoding

    public java.lang.String getEncoding()

Get encoding for connections produced by this data source.

Specified by:
  `getEncoding` in interface `FirebirdConnectionProperties`
Returns:
  encoding for the connection.
See Also:
  `FirebirdConnectionProperties.setEncoding(String)`

#### setEncoding

    public void setEncoding(java.lang.String encoding)

Set encoding for connections produced by this data source.

Specified by:
  `setEncoding` in interface `FirebirdConnectionProperties`
Parameters:
  `encoding` - encoding for the connection.

#### getTpbMapping

    public java.lang.String getTpbMapping()

Description copied from interface: `FirebirdConnectionProperties`
Get the used TPB mapping.

Specified by:
  `getTpbMapping` in interface `FirebirdConnectionProperties`
Returns:
  path to the TPB mapping.
See Also:
  `FirebirdConnectionProperties.setTpbMapping(String)`

#### setTpbMapping

    public void setTpbMapping(java.lang.String tpbMapping)

Description copied from interface: `FirebirdConnectionProperties`
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.

Specified by:
  `setTpbMapping` in interface `FirebirdConnectionProperties`
Parameters:
  `tpbMapping` - path to the properties file.

#### getBlobBufferSize

    public int getBlobBufferSize()

Specified by:
  `getBlobBufferSize` in interface `FirebirdConnectionProperties`
Returns:
  BLOB buffer size in bytes.

#### getBuffersNumber

    public int getBuffersNumber()

Specified by:
  `getBuffersNumber` in interface `FirebirdConnectionProperties`
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.

#### getCharSet

    public java.lang.String getCharSet()

Specified by:
  `getCharSet` in interface `FirebirdConnectionProperties`
Returns:
  Character set for the connection.
See Also:
  `FirebirdConnectionProperties.setCharSet(String)`

#### getDatabaseParameterBuffer

    public DatabaseParameterBuffer getDatabaseParameterBuffer()
                                                       throws java.sql.SQLException

Description copied from interface: `FirebirdConnectionProperties`
Get the database parameter buffer corresponding to the current connection request information.

Specified by:
  `getDatabaseParameterBuffer` in interface `FirebirdConnectionProperties`
Returns:
  instance of `DatabaseParameterBuffer`.
Throws:
  `java.sql.SQLException` - if database parameter buffer cannot be created.

#### getDefaultIsolation

    public java.lang.String getDefaultIsolation()

Description copied from interface: `FirebirdConnectionProperties`
Get the default transaction isolation level as string. This method is complementary to the `FirebirdConnectionProperties.getDefaultTransactionIsolation()`, however it takes a string as parameter instead of a numeric constant.

Specified by:
  `getDefaultIsolation` in interface `FirebirdConnectionProperties`
Returns:
  default transaction isolation as string.
See Also:
  `FirebirdConnectionProperties.setDefaultIsolation(String)`

#### getDefaultTransactionIsolation

    public int getDefaultTransactionIsolation()

Description copied from interface: `FirebirdConnectionProperties`
Get the default transaction isolation level. This is the transaction isolation level for the newly created connections.

Specified by:
  `getDefaultTransactionIsolation` in interface `FirebirdConnectionProperties`
Returns:
  default transaction isolation level.

#### getNonStandardProperty

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

Description copied from interface: `FirebirdConnectionProperties`
Get the property that does not have corresponding getter method by its name.

Specified by:
  `getNonStandardProperty` in interface `FirebirdConnectionProperties`
Parameters:
  `key` - name of the property to get.
Returns:
  value of the property.

#### getRoleName

    public java.lang.String getRoleName()

Specified by:
  `getRoleName` in interface `FirebirdConnectionProperties`
Returns:
  SQL role to use.

#### getSocketBufferSize

    public int getSocketBufferSize()

Specified by:
  `getSocketBufferSize` in interface `FirebirdConnectionProperties`
Returns:
  socket buffer size in bytes, or -1 is not specified.

#### getSqlDialect

    public java.lang.String getSqlDialect()

Specified by:
  `getSqlDialect` in interface `FirebirdConnectionProperties`
Returns:
  SQL dialect of the client.

#### getTransactionParameters

    public TransactionParameterBuffer getTransactionParameters(int isolation)

Description copied from interface: `FirebirdConnectionProperties`
Get the transaction parameter buffer corresponding to the current connection request information.

Specified by:
  `getTransactionParameters` in interface `FirebirdConnectionProperties`
Parameters:
  `isolation` - transaction isolation level for which TPB should be returned.
Returns:
  instance of `TransactionParameterBuffer`.

#### getType

    public java.lang.String getType()

Specified by:
  `getType` in interface `FirebirdConnectionProperties`
Returns:
  type of the connection, for example, "PURE_JAVA", "LOCAL", "EMBEDDED", depends on the GDS implementations installed in the system.

#### isTimestampUsesLocalTimezone

    public boolean isTimestampUsesLocalTimezone()

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

#### isUseStandardUdf

    public boolean isUseStandardUdf()

Specified by:
  `isUseStandardUdf` in interface `FirebirdConnectionProperties`
Returns:
  `true` if driver should assume that standard UDF are installed.

#### isUseStreamBlobs

    public boolean isUseStreamBlobs()

Specified by:
  `isUseStreamBlobs` in interface `FirebirdConnectionProperties`
Returns:
  `true` if stream blobs should be created, otherwise `false`.

#### setBlobBufferSize

    public void setBlobBufferSize(int bufferSize)

Specified by:
  `setBlobBufferSize` in interface `FirebirdConnectionProperties`
Parameters:
  `bufferSize` - size of the BLOB buffer in bytes.

#### setBuffersNumber

    public void setBuffersNumber(int buffersNumber)

Specified by:
  `setBuffersNumber` in interface `FirebirdConnectionProperties`
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.

#### setCharSet

    public void setCharSet(java.lang.String charSet)

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

#### setDefaultIsolation

    public void setDefaultIsolation(java.lang.String isolation)

Description copied from interface: `FirebirdConnectionProperties`
Set the default transaction isolation level as string. This method is complementary to the `FirebirdConnectionProperties.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.

Specified by:
  `setDefaultIsolation` in interface `FirebirdConnectionProperties`
Parameters:
  `isolation` - string constant representing a default isolation level.

#### setDefaultTransactionIsolation

    public void setDefaultTransactionIsolation(int defaultIsolationLevel)

Description copied from interface: `FirebirdConnectionProperties`
Set the default transaction isolation level.

Specified by:
  `setDefaultTransactionIsolation` in interface `FirebirdConnectionProperties`
Parameters:
  `defaultIsolationLevel` - default transaction isolation level.

#### setNonStandardProperty

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

Description copied from interface: `FirebirdConnectionProperties`
Set the property that does not have corresponding setter method.

Specified by:
  `setNonStandardProperty` in interface `FirebirdConnectionProperties`
Parameters:
  `key` - name of the property to set.
  `value` - value of the property.

#### setNonStandardProperty

    public void setNonStandardProperty(java.lang.String propertyMapping)

Description copied from interface: `FirebirdConnectionProperties`
Set the property that does not have corresponding setter method.

Specified by:
  `setNonStandardProperty` in interface `FirebirdConnectionProperties`
Parameters:
  `propertyMapping` - parameter value in the ?propertyName[=propertyValue]? form, this allows setting non-standard parameters using configuration files.

#### setRoleName

    public void setRoleName(java.lang.String roleName)

Specified by:
  `setRoleName` in interface `FirebirdConnectionProperties`
Parameters:
  `roleName` - SQL role to use.

#### setSocketBufferSize

    public void setSocketBufferSize(int socketBufferSize)

Specified by:
  `setSocketBufferSize` in interface `FirebirdConnectionProperties`
Parameters:
  `socketBufferSize` - socket buffer size in bytes.

#### setSqlDialect

    public void setSqlDialect(java.lang.String sqlDialect)

Specified by:
  `setSqlDialect` in interface `FirebirdConnectionProperties`
Parameters:
  `sqlDialect` - SQL dialect of the client.

#### setTimestampUsesLocalTimezone

    public void setTimestampUsesLocalTimezone(boolean timestampUsesLocalTimezone)

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

#### setTransactionParameters

    public void setTransactionParameters(int isolation,
                                TransactionParameterBuffer tpb)

Description copied from interface: `FirebirdConnectionProperties`
Set transaction parameters for the specified transaction isolation level. The specified TPB is used as a default mapping for the specified isolation level.

Specified by:
  `setTransactionParameters` in interface `FirebirdConnectionProperties`
Parameters:
  `isolation` - transaction isolation level.
  `tpb` - instance of `TransactionParameterBuffer` containing transaction parameters.

#### setType

    public void setType(java.lang.String type)

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

#### setUseStandardUdf

    public void setUseStandardUdf(boolean useStandardUdf)

Specified by:
  `setUseStandardUdf` in interface `FirebirdConnectionProperties`
Parameters:
  `useStandardUdf` - `true` if driver should assume that standard UDF are installed.

#### setUseStreamBlobs

    public void setUseStreamBlobs(boolean useStreamBlobs)

Specified by:
  `setUseStreamBlobs` in interface `FirebirdConnectionProperties`
Parameters:
  `useStreamBlobs` - `true` if stream blobs should be created, otherwise `false`.

#### isDefaultResultSetHoldable

    public boolean isDefaultResultSetHoldable()

Description copied from interface: `FirebirdConnectionProperties`
Get the default ResultSet holdability.

Specified by:
  `isDefaultResultSetHoldable` in interface `FirebirdConnectionProperties`
Returns:
  `true` when ResultSets are holdable by default, `false` not holdable.

#### setDefaultResultSetHoldable

    public void setDefaultResultSetHoldable(boolean isHoldable)

Description copied from interface: `FirebirdConnectionProperties`
Sets the default ResultSet holdability.

Specified by:
  `setDefaultResultSetHoldable` in interface `FirebirdConnectionProperties`
Parameters:
  `isHoldable` - `true` when ResultSets are holdable by default, `false` not holdable.

#### getSoTimeout

    public int getSoTimeout()

Description copied from interface: `FirebirdConnectionProperties`
Get the current Socket blocking timeout (SoTimeout).

Specified by:
  `getSoTimeout` in interface `FirebirdConnectionProperties`
Returns:
  The socket blocking timeout in milliseconds (0 is 'infinite')

#### setSoTimeout

    public void setSoTimeout(int soTimeout)

Description copied from interface: `FirebirdConnectionProperties`
Set the Socket blocking timeout (SoTimeout).

Specified by:
  `setSoTimeout` in interface `FirebirdConnectionProperties`
Parameters:
  `soTimeout` - Timeout in milliseconds (0 is 'infinite')

#### getConnectTimeout

    public int getConnectTimeout()

Description copied from interface: `FirebirdConnectionProperties`
Get the current connect timeout.

Specified by:
  `getConnectTimeout` in interface `FirebirdConnectionProperties`
Returns:
  Connect timeout in seconds (0 is 'infinite', or better: OS specific timeout)

#### setConnectTimeout

    public void setConnectTimeout(int connectTimeout)

Description copied from interface: `FirebirdConnectionProperties`
Set the connect timeout.

Specified by:
  `setConnectTimeout` in interface `FirebirdConnectionProperties`
Parameters:
  `connectTimeout` - Connect timeout in seconds (0 is 'infinite', or better: OS specific timeout)

#### isUseFirebirdAutocommit

    public boolean isUseFirebirdAutocommit()

Description copied from interface: `FirebirdConnectionProperties`
Get whether to use Firebird autocommit (experimental).

Specified by:
  `isUseFirebirdAutocommit` in interface `FirebirdConnectionProperties`
Returns:
  `true` use Firebird autocommit

#### setUseFirebirdAutocommit

    public void setUseFirebirdAutocommit(boolean useFirebirdAutocommit)

Description copied from interface: `FirebirdConnectionProperties`
Set whether to use Firebird autocommit (experimental).

Specified by:
  `setUseFirebirdAutocommit` in interface `FirebirdConnectionProperties`
Parameters:
  `useFirebirdAutocommit` - `true` Use Firebird autocommit

#### getWireCrypt

    public java.lang.String getWireCrypt()

Description copied from interface: `FirebirdConnectionProperties`
Get the wire encryption level value.

Specified by:
  `getWireCrypt` in interface `FirebirdConnectionProperties`
Returns:
  Wire encryption level (`null` implies `DEFAULT`)

#### setWireCrypt

    public void setWireCrypt(java.lang.String wireCrypt)

Description copied from interface: `FirebirdConnectionProperties`
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.

Specified by:
  `setWireCrypt` in interface `FirebirdConnectionProperties`
Parameters:
  `wireCrypt` - Wire encryption level

#### getDbCryptConfig

    public java.lang.String getDbCryptConfig()

Description copied from interface: `FirebirdConnectionProperties`
Get the database encryption plugin configuration.

Specified by:
  `getDbCryptConfig` in interface `FirebirdConnectionProperties`
Returns:
  Database encryption plugin configuration, meaning plugin specific

#### setDbCryptConfig

    public void setDbCryptConfig(java.lang.String dbCryptConfig)

Description copied from interface: `FirebirdConnectionProperties`
Sets the database encryption plugin configuration.

Specified by:
  `setDbCryptConfig` in interface `FirebirdConnectionProperties`
Parameters:
  `dbCryptConfig` - Database encryption plugin configuration, meaning plugin specific

#### getAuthPlugins

    public java.lang.String getAuthPlugins()

Description copied from interface: `FirebirdConnectionProperties`
Get the list of authentication plugins to try.

Specified by:
  `getAuthPlugins` in interface `FirebirdConnectionProperties`
Returns:
  comma-separated list of authentication plugins, or `null` for driver default

#### setAuthPlugins

    public void setAuthPlugins(java.lang.String authPlugins)

Description copied from interface: `FirebirdConnectionProperties`
Sets the authentication plugins to try.

Invalid names are skipped during authentication.

Specified by:
  `setAuthPlugins` in interface `FirebirdConnectionProperties`
Parameters:
  `authPlugins` - comma-separated list of authentication plugins, or `null` for driver default

#### getGeneratedKeysEnabled

    public java.lang.String getGeneratedKeysEnabled()

Description copied from interface: `FirebirdConnectionProperties`
Get the `generatedKeysEnabled` configuration.

Specified by:
  `getGeneratedKeysEnabled` in interface `FirebirdConnectionProperties`
Returns:
  configuration value for `generatedKeysEnabled`, or `null` for driver default

#### setGeneratedKeysEnabled

    public void setGeneratedKeysEnabled(java.lang.String generatedKeysEnabled)

Description copied from interface: `FirebirdConnectionProperties`
Sets the `generatedKeysEnabled` configuration.

Specified by:
  `setGeneratedKeysEnabled` in interface `FirebirdConnectionProperties`
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

    public java.lang.String getDataTypeBind()

Description copied from interface: `FirebirdConnectionProperties`
Get the `dataTypeBind` configuration.

Specified by:
  `getDataTypeBind` in interface `FirebirdConnectionProperties`
Returns:
  configuration value for `dataTypeBind`, or `null` for driver default

#### setDataTypeBind

    public void setDataTypeBind(java.lang.String dataTypeBind)

Description copied from interface: `FirebirdConnectionProperties`
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`.

Specified by:
  `setDataTypeBind` in interface `FirebirdConnectionProperties`
Parameters:
  `dataTypeBind` - Firebird 4+ data type bind configuration, a semicolon-separated list of `<from-type> TO <to-type>`

#### getSessionTimeZone

    public java.lang.String getSessionTimeZone()

Description copied from interface: `FirebirdConnectionProperties`
Get the `sessionTimeZone`.

Specified by:
  `getSessionTimeZone` in interface `FirebirdConnectionProperties`
Returns:
  value for `sessionTimeZone`, or `null` for driver default (JVM default time zone)

#### setSessionTimeZone

    public void setSessionTimeZone(java.lang.String sessionTimeZone)

Description copied from interface: `FirebirdConnectionProperties`
Sets the `sessionTimeZone`.

Specified by:
  `setSessionTimeZone` in interface `FirebirdConnectionProperties`
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)

#### isIgnoreProcedureType

    public boolean isIgnoreProcedureType()

Description copied from interface: `FirebirdConnectionProperties`
Get the value for `ignoreProcedureType`.

Specified by:
  `isIgnoreProcedureType` in interface `FirebirdConnectionProperties`
Returns:
  value for `ignoreProcedureType`

#### setIgnoreProcedureType

    public void setIgnoreProcedureType(boolean ignoreProcedureType)

Description copied from interface: `FirebirdConnectionProperties`
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.

Specified by:
  `setIgnoreProcedureType` in interface `FirebirdConnectionProperties`
Parameters:
  `ignoreProcedureType` - `true` Ignore procedure type

#### isWireCompression

    public boolean isWireCompression()

Description copied from interface: `FirebirdConnectionProperties`
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.

Specified by:
  `isWireCompression` in interface `FirebirdConnectionProperties`
Returns:
  `true` wire compression enabled

#### setWireCompression

    public void setWireCompression(boolean wireCompression)

Description copied from interface: `FirebirdConnectionProperties`
Sets if the connection should try to enable wire compression.

Specified by:
  `setWireCompression` in interface `FirebirdConnectionProperties`
Parameters:
  `wireCompression` - `true` enable wire compression, `false` disable wire compression (the default)
See Also:
  `FirebirdConnectionProperties.isWireCompression()`

#### getReference

    public javax.naming.Reference getReference()
                                        throws javax.naming.NamingException

Get previously set JNDI reference.

Specified by:
  `getReference` in interface `javax.naming.Referenceable`
Returns:
  instance of `Reference` set previously.
Throws:
  `javax.naming.NamingException` - if something went wrong.

#### setReference

    public void setReference(javax.naming.Reference reference)

Set JNDI reference for this data source.

Parameters:
  `reference` - reference to set.

#### getConnection

    public java.sql.Connection getConnection()
                                      throws java.sql.SQLException

Get JDBC connection with default credentials.

Specified by:
  `getConnection` in interface `javax.sql.DataSource`
Returns:
  new JDBC connection.
Throws:
  `java.sql.SQLException` - if something went wrong.

#### getConnection

    public java.sql.Connection getConnection(java.lang.String username,
                                    java.lang.String password)
                                      throws java.sql.SQLException

Get JDBC connection with the specified credentials.

Specified by:
  `getConnection` in interface `javax.sql.DataSource`
Parameters:
  `username` - user name for the connection.
  `password` - password for the connection.
Returns:
  new JDBC connection.
Throws:
  `java.sql.SQLException` - if something went wrong.

#### getLoginTimeout

    public int getLoginTimeout()
                        throws java.sql.SQLException

This property is an alias for the connectTimeout property.

Specified by:
  `getLoginTimeout` in interface `javax.sql.CommonDataSource`
Throws:
  `java.sql.SQLException`

#### setLoginTimeout

    public void setLoginTimeout(int loginTimeout)
                         throws java.sql.SQLException

This property is an alias for the connectTimeout property.

Specified by:
  `setLoginTimeout` in interface `javax.sql.CommonDataSource`
Throws:
  `java.sql.SQLException`

#### getDescription

    public java.lang.String getDescription()

Get description of this datasource.

Returns:
  description of this datasource.

#### setDescription

    public void setDescription(java.lang.String description)

Set description of this datasource.

Parameters:
  `description` - description of this datasource.

#### getDataSource

    protected javax.sql.DataSource getDataSource()
                                          throws java.sql.SQLException

Get underlying connection factory (in our case instance of `FBDataSource` class) that will provide JDBC connections.

Returns:
  JDBC connection factory.
Throws:
  `java.sql.SQLException` - if something went wrong.

#### 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`