public class FBSimpleDataSource extends RootCommonDataSource implements javax.sql.DataSource, java.io.Serializable, javax.resource.Referenceable, FirebirdConnectionProperties
DataSource interface. Connections
are physically opened in DataSource.getConnection() method and
physically closed in Connection.close() method.| Modifier and Type | Field and Description |
|---|---|
protected java.lang.String |
description |
protected FBDataSource |
ds |
protected javax.naming.Reference |
jndiReference |
protected FBManagedConnectionFactory |
mcf |
| Constructor and Description |
|---|
FBSimpleDataSource()
Create instance of this class.
|
FBSimpleDataSource(GDSType type)
Create instance of this class.
|
| Modifier and Type | Method and Description |
|---|---|
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) |
getLogWriter, getParentLogger, setLogWriterprotected FBManagedConnectionFactory mcf
protected transient FBDataSource ds
protected javax.naming.Reference jndiReference
protected java.lang.String description
public FBSimpleDataSource()
public FBSimpleDataSource(GDSType type)
public java.lang.Integer getBlobBufferLength()
public void setBlobBufferLength(java.lang.Integer length)
length - new length of the BLOB buffer.@Deprecated public java.lang.String getDatabaseName()
getDatabase() instead for the sake of naming
compatibility.jdbc:firebirdsql: part.@Deprecated public void setDatabaseName(java.lang.String name)
setDatabase(String) instead for the sake of
naming compatibility.name - connection URL without "jdbc:firebirdsql:"
prefix ("//localhost:3050/c:/database/employee.fdb") for
example).public java.lang.String getDatabase()
getDatabase in interface FirebirdConnectionPropertiesjdbc:firebirdsql: part.public void setDatabase(java.lang.String name)
setDatabase in interface FirebirdConnectionPropertiesname - connection URL without "jdbc:firebirdsql:"
prefix ("//localhost:3050/c:/database/employee.fdb") for
example).@Deprecated public java.lang.String getUser()
getUserName() instead for the sake of naming
compatibility.getConnection() method.@Deprecated public void setUser(java.lang.String user)
setUserName(String) instead for the sake of
naming compatibility.getConnection() method.user - default user name.public java.lang.String getUserName()
getConnection() method.getUserName in interface FirebirdConnectionPropertiespublic void setUserName(java.lang.String userName)
getConnection() method.setUserName in interface FirebirdConnectionPropertiesuserName - default user name.public java.lang.String getPassword()
getConnection() method.getPassword in interface FirebirdConnectionPropertiesgetUserName().public void setPassword(java.lang.String password)
getConnection() method.setPassword in interface FirebirdConnectionPropertiespassword - password corresponding to the user name set in
setUserName(String).public java.lang.String getEncoding()
getEncoding in interface FirebirdConnectionPropertiesFirebirdConnectionProperties.setEncoding(String)public void setEncoding(java.lang.String encoding)
setEncoding in interface FirebirdConnectionPropertiesencoding - encoding for the connection.public java.lang.String getTpbMapping()
FirebirdConnectionPropertiesgetTpbMapping in interface FirebirdConnectionPropertiesFirebirdConnectionProperties.setTpbMapping(String)public void setTpbMapping(java.lang.String tpbMapping)
FirebirdConnectionProperties"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.setTpbMapping in interface FirebirdConnectionPropertiestpbMapping - path to the properties file.public int getBlobBufferSize()
getBlobBufferSize in interface FirebirdConnectionPropertiespublic int getBuffersNumber()
getBuffersNumber in interface FirebirdConnectionPropertiespublic java.lang.String getCharSet()
getCharSet in interface FirebirdConnectionPropertiesFirebirdConnectionProperties.setCharSet(String)public DatabaseParameterBuffer getDatabaseParameterBuffer() throws java.sql.SQLException
FirebirdConnectionPropertiesgetDatabaseParameterBuffer in interface FirebirdConnectionPropertiesDatabaseParameterBuffer.java.sql.SQLException - if database parameter buffer cannot be created.public java.lang.String getDefaultIsolation()
FirebirdConnectionPropertiesFirebirdConnectionProperties.getDefaultTransactionIsolation(), however
it takes a string as parameter instead of a numeric constant.getDefaultIsolation in interface FirebirdConnectionPropertiesFirebirdConnectionProperties.setDefaultIsolation(String)public int getDefaultTransactionIsolation()
FirebirdConnectionPropertiesgetDefaultTransactionIsolation in interface FirebirdConnectionPropertiespublic java.lang.String getNonStandardProperty(java.lang.String key)
FirebirdConnectionPropertiesgetNonStandardProperty in interface FirebirdConnectionPropertieskey - name of the property to get.public java.lang.String getRoleName()
getRoleName in interface FirebirdConnectionPropertiespublic int getSocketBufferSize()
getSocketBufferSize in interface FirebirdConnectionPropertiespublic java.lang.String getSqlDialect()
getSqlDialect in interface FirebirdConnectionPropertiespublic TransactionParameterBuffer getTransactionParameters(int isolation)
FirebirdConnectionPropertiesgetTransactionParameters in interface FirebirdConnectionPropertiesisolation - transaction isolation level for which TPB should be returned.TransactionParameterBuffer.public java.lang.String getType()
getType in interface FirebirdConnectionPropertiespublic boolean isTimestampUsesLocalTimezone()
isTimestampUsesLocalTimezone in interface FirebirdConnectionPropertiestrue if the Jaybird 1.0 handling of the calendar
in corresponding setters. This is also compatible with MySQL
calendar treatment.public boolean isUseStandardUdf()
isUseStandardUdf in interface FirebirdConnectionPropertiestrue if driver should assume that standard UDF are
installed.public boolean isUseStreamBlobs()
isUseStreamBlobs in interface FirebirdConnectionPropertiestrue if stream blobs should be created, otherwise
false.public void setBlobBufferSize(int bufferSize)
setBlobBufferSize in interface FirebirdConnectionPropertiesbufferSize - size of the BLOB buffer in bytes.public void setBuffersNumber(int buffersNumber)
setBuffersNumber in interface FirebirdConnectionPropertiesbuffersNumber - number of cache buffers that should be allocated for this
connection, should be specified for ClassicServer instances,
SuperServer has a server-wide configuration parameter.public void setCharSet(java.lang.String charSet)
setCharSet in interface FirebirdConnectionPropertiescharSet - Character set for the connection. Similar to
encoding property, but accepts Java names
instead of Firebird ones.public void setDefaultIsolation(java.lang.String isolation)
FirebirdConnectionPropertiesFirebirdConnectionProperties.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.
setDefaultIsolation in interface FirebirdConnectionPropertiesisolation - string constant representing a default isolation level.public void setDefaultTransactionIsolation(int defaultIsolationLevel)
FirebirdConnectionPropertiessetDefaultTransactionIsolation in interface FirebirdConnectionPropertiesdefaultIsolationLevel - default transaction isolation level.public void setNonStandardProperty(java.lang.String key,
java.lang.String value)
FirebirdConnectionPropertiessetNonStandardProperty in interface FirebirdConnectionPropertieskey - name of the property to set.value - value of the property.public void setNonStandardProperty(java.lang.String propertyMapping)
FirebirdConnectionPropertiessetNonStandardProperty in interface FirebirdConnectionPropertiespropertyMapping - parameter value in the ?propertyName[=propertyValue]? form,
this allows setting non-standard parameters using
configuration files.public void setRoleName(java.lang.String roleName)
setRoleName in interface FirebirdConnectionPropertiesroleName - SQL role to use.public void setSocketBufferSize(int socketBufferSize)
setSocketBufferSize in interface FirebirdConnectionPropertiessocketBufferSize - socket buffer size in bytes.public void setSqlDialect(java.lang.String sqlDialect)
setSqlDialect in interface FirebirdConnectionPropertiessqlDialect - SQL dialect of the client.public void setTimestampUsesLocalTimezone(boolean timestampUsesLocalTimezone)
setTimestampUsesLocalTimezone in interface FirebirdConnectionPropertiestimestampUsesLocalTimezone - true if the Jaybird 1.0 handling of the
calendar in corresponding setters. This is also compatible
with MySQL calendar treatment.public void setTransactionParameters(int isolation,
TransactionParameterBuffer tpb)
FirebirdConnectionPropertiessetTransactionParameters in interface FirebirdConnectionPropertiesisolation - transaction isolation level.tpb - instance of TransactionParameterBuffer containing
transaction parameters.public void setType(java.lang.String type)
setType in interface FirebirdConnectionPropertiestype - type of the connection, for example, "PURE_JAVA", "LOCAL",
"EMBEDDED", depends on the GDS implementations installed in the system.public void setUseStandardUdf(boolean useStandardUdf)
setUseStandardUdf in interface FirebirdConnectionPropertiesuseStandardUdf - true if driver should assume that standard UDF
are installed.public void setUseStreamBlobs(boolean useStreamBlobs)
setUseStreamBlobs in interface FirebirdConnectionPropertiesuseStreamBlobs - true if stream blobs should be created,
otherwise false.public boolean isDefaultResultSetHoldable()
FirebirdConnectionPropertiesisDefaultResultSetHoldable in interface FirebirdConnectionPropertiestrue when ResultSets are holdable by default, false not holdable.public void setDefaultResultSetHoldable(boolean isHoldable)
FirebirdConnectionPropertiessetDefaultResultSetHoldable in interface FirebirdConnectionPropertiesisHoldable - true when ResultSets are holdable by default, false not holdable.public int getSoTimeout()
FirebirdConnectionPropertiesgetSoTimeout in interface FirebirdConnectionPropertiespublic void setSoTimeout(int soTimeout)
FirebirdConnectionPropertiessetSoTimeout in interface FirebirdConnectionPropertiessoTimeout - Timeout in milliseconds (0 is 'infinite')public int getConnectTimeout()
FirebirdConnectionPropertiesgetConnectTimeout in interface FirebirdConnectionPropertiespublic void setConnectTimeout(int connectTimeout)
FirebirdConnectionPropertiessetConnectTimeout in interface FirebirdConnectionPropertiesconnectTimeout - Connect timeout in seconds (0 is 'infinite', or better: OS specific timeout)public boolean isUseFirebirdAutocommit()
FirebirdConnectionPropertiesisUseFirebirdAutocommit in interface FirebirdConnectionPropertiestrue use Firebird autocommitpublic void setUseFirebirdAutocommit(boolean useFirebirdAutocommit)
FirebirdConnectionPropertiessetUseFirebirdAutocommit in interface FirebirdConnectionPropertiesuseFirebirdAutocommit - true Use Firebird autocommitpublic java.lang.String getWireCrypt()
FirebirdConnectionPropertiesgetWireCrypt in interface FirebirdConnectionPropertiesnull implies DEFAULT)public void setWireCrypt(java.lang.String wireCrypt)
FirebirdConnectionProperties
Values are defined by WireCrypt, values are handled case insensitive.
Invalid values are accepted, but will cause an error when a connection is established.
setWireCrypt in interface FirebirdConnectionPropertieswireCrypt - Wire encryption levelpublic java.lang.String getDbCryptConfig()
FirebirdConnectionPropertiesgetDbCryptConfig in interface FirebirdConnectionPropertiespublic void setDbCryptConfig(java.lang.String dbCryptConfig)
FirebirdConnectionPropertiessetDbCryptConfig in interface FirebirdConnectionPropertiesdbCryptConfig - Database encryption plugin configuration, meaning plugin specificpublic java.lang.String getAuthPlugins()
FirebirdConnectionPropertiesgetAuthPlugins in interface FirebirdConnectionPropertiesnull for driver defaultpublic void setAuthPlugins(java.lang.String authPlugins)
FirebirdConnectionPropertiesInvalid names are skipped during authentication.
setAuthPlugins in interface FirebirdConnectionPropertiesauthPlugins - comma-separated list of authentication plugins, or null for driver defaultpublic java.lang.String getGeneratedKeysEnabled()
FirebirdConnectionPropertiesgeneratedKeysEnabled configuration.getGeneratedKeysEnabled in interface FirebirdConnectionPropertiesgeneratedKeysEnabled, or null for driver defaultpublic void setGeneratedKeysEnabled(java.lang.String generatedKeysEnabled)
FirebirdConnectionPropertiesgeneratedKeysEnabled configuration.setGeneratedKeysEnabled in interface FirebirdConnectionPropertiesgeneratedKeysEnabled - 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)public java.lang.String getDataTypeBind()
FirebirdConnectionPropertiesdataTypeBind configuration.getDataTypeBind in interface FirebirdConnectionPropertiesdataTypeBind, or null for driver defaultpublic void setDataTypeBind(java.lang.String dataTypeBind)
FirebirdConnectionPropertiesdataTypeBind 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.
setDataTypeBind in interface FirebirdConnectionPropertiesdataTypeBind - Firebird 4+ data type bind configuration, a semicolon-separated list of <from-type> TO <to-type>public java.lang.String getSessionTimeZone()
FirebirdConnectionPropertiessessionTimeZone.getSessionTimeZone in interface FirebirdConnectionPropertiessessionTimeZone, or null for driver default (JVM default time zone)public void setSessionTimeZone(java.lang.String sessionTimeZone)
FirebirdConnectionPropertiessessionTimeZone.setSessionTimeZone in interface FirebirdConnectionPropertiessessionTimeZone - 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)public boolean isIgnoreProcedureType()
FirebirdConnectionPropertiesignoreProcedureType.isIgnoreProcedureType in interface FirebirdConnectionPropertiesignoreProcedureTypepublic void setIgnoreProcedureType(boolean ignoreProcedureType)
FirebirdConnectionPropertiesignoreProcedureType.
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.
setIgnoreProcedureType in interface FirebirdConnectionPropertiesignoreProcedureType - true Ignore procedure typepublic boolean isWireCompression()
FirebirdConnectionPropertiesWire 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.
isWireCompression in interface FirebirdConnectionPropertiestrue wire compression enabledpublic void setWireCompression(boolean wireCompression)
FirebirdConnectionPropertiessetWireCompression in interface FirebirdConnectionPropertieswireCompression - true enable wire compression, false disable wire compression (the default)FirebirdConnectionProperties.isWireCompression()public javax.naming.Reference getReference()
throws javax.naming.NamingException
getReference in interface javax.naming.ReferenceableReference set previously.javax.naming.NamingException - if something went wrong.public void setReference(javax.naming.Reference reference)
reference - reference to set.public java.sql.Connection getConnection()
throws java.sql.SQLException
getConnection in interface javax.sql.DataSourcejava.sql.SQLException - if something went wrong.public java.sql.Connection getConnection(java.lang.String username,
java.lang.String password)
throws java.sql.SQLException
getConnection in interface javax.sql.DataSourceusername - user name for the connection.password - password for the connection.java.sql.SQLException - if something went wrong.public int getLoginTimeout()
throws java.sql.SQLException
This property is an alias for the connectTimeout property.
getLoginTimeout in interface javax.sql.CommonDataSourcejava.sql.SQLExceptionpublic void setLoginTimeout(int loginTimeout)
throws java.sql.SQLException
This property is an alias for the connectTimeout property.
setLoginTimeout in interface javax.sql.CommonDataSourcejava.sql.SQLExceptionpublic java.lang.String getDescription()
public void setDescription(java.lang.String description)
description - description of this datasource.protected javax.sql.DataSource getDataSource()
throws java.sql.SQLException
FBDataSource class) that will provide JDBC connections.java.sql.SQLException - if something went wrong.public boolean isWrapperFor(java.lang.Class<?> iface)
throws java.sql.SQLException
isWrapperFor in interface java.sql.Wrapperjava.sql.SQLExceptionpublic <T> T unwrap(java.lang.Class<T> iface)
throws java.sql.SQLException
unwrap in interface java.sql.Wrapperjava.sql.SQLExceptionCopyright © 2001-2021 Jaybird (Firebird JDBC/JCA) team. All rights reserved.