Class MariaDbConnection
- All Implemented Interfaces:
AutoCloseable,Connection,Wrapper
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final PatternPattern to check the correctness of callable statement query string Legal queries, as documented in JDK have the form: {[?=]call[(arg1,..,,argn)]}private CallableStatementCacheprivate booleanprivate intfinal ReentrantLockprivate static final Loggerprivate intprotected booleanprivate final Optionsthe properties for the client.private static final PatternCheck that query can be executed with PREPARE.private final Protocolthe protocol to communicate with.private intsave point count - to generate good names for the savepoints.private booleanprivate intprivate booleanFields inherited from interface java.sql.Connection
TRANSACTION_NONE, TRANSACTION_READ_COMMITTED, TRANSACTION_READ_UNCOMMITTED, TRANSACTION_REPEATABLE_READ, TRANSACTION_SERIALIZABLE -
Constructor Summary
ConstructorsConstructorDescriptionMariaDbConnection(Protocol protocol) Creates a new connection with a given protocol and query factory. -
Method Summary
Modifier and TypeMethodDescriptionvoidAbort connection.private StringbuildClientQuery(String name, String value) booleanprivate voidcheckClientClose(String name) private voidcheckClientReconnect(String name) private voidprivate voidvoidClears all warnings reported for thisConnectionobject.Create a new client prepared statement.voidclose()close the connection.voidcommit()Sends commit to the server.createArrayOf(String typeName, Object[] elements) Factory method for creating Array objects.Constructs an object that implements theBlobinterface.Constructs an object that implements theClobinterface.Constructs an object that implements theNClobinterface.private CallableStatementcreateNewCallableStatement(String query, String procedureName, boolean isFunction, String databaseAndProcedure, String database, String arguments, int resultSetType, int resultSetConcurrency) Constructs an object that implements theSQLXMLinterface.creates a new statement.createStatement(int resultSetType, int resultSetConcurrency) Creates aStatementobject that will generateResultSetobjects with the given type and concurrency.createStatement(int resultSetType, int resultSetConcurrency, int resultSetHoldability) Creates aStatementobject that will generateResultSetobjects with the given type, concurrency, and holdability.createStruct(String typeName, Object[] attributes) Factory method for creating Struct objects.booleanreturns true if statements on this connection are auto commited.Retrieves thisConnectionobject's current catalog name.Returns a list containing the name and current value of each client info property supported by the driver.getClientInfo(String name) Returns the value of the client info property specified by name.intRetrieves the current holdability ofResultSetobjects created using thisConnectionobject.Deprecated.intAre table case sensitive or not .returns the meta data about the database.intGet network timeout.protected booleanintgetPort()Deprecated.protected ProtocollongintRetrieves thisConnectionobject's current transaction isolation level.Retrieves theMapobject associated with thisConnectionobject.Deprecated.Retrieves the first warning reported by calls on thisConnectionobject.booleanbooleanprivate PreparedStatementinternalPrepareStatement(String sql, int resultSetScrollType, int resultSetConcurrency, int autoGeneratedKeys) Send ServerPrepareStatement or ClientPrepareStatement depending on SQL query and options If server side and PREPARE can be delayed, a facade will be return, to have a fallback on client prepareStatement.booleanisClosed()checks if the connection is closed.booleanRetrieves whether thisConnectionobject is in read-only mode.booleanbooleanisValid(int timeout) Returns true if the connection has not been closed and is still valid.booleanisWrapperFor(Class<?> iface) Returns true if this either implements the interface argument or is directly or indirectly a wrapper for an object that does.static MariaDbConnectionnewConnection(UrlParser urlParser, GlobalStateInfo globalInfo) Create new connection Object.prepareCall(String sql) Creates aCallableStatementobject for calling database stored procedures.prepareCall(String sql, int resultSetType, int resultSetConcurrency) Creates aCallableStatementobject that will generateResultSetobjects with the given type and concurrency.prepareCall(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) Creates aCallableStatementobject that will generateResultSetobjects with the given type and concurrency.prepareStatement(String sql) creates a new prepared statement.prepareStatement(String sql, int autoGeneratedKeys) Creates a defaultPreparedStatementobject that has the capability to retrieve auto-generated keys.prepareStatement(String sql, int[] columnIndexes) Creates a defaultPreparedStatementobject capable of returning the auto-generated keys designated by the given array.prepareStatement(String sql, int resultSetType, int resultSetConcurrency) Creates aPreparedStatementobject that will generateResultSetobjects with the given type and concurrency.prepareStatement(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) Creates aPreparedStatementobject that will generateResultSetobjects with the given type, concurrency, and holdability.prepareStatement(String sql, String[] columnNames) Creates a defaultPreparedStatementobject capable of returning the auto-generated keys designated by the given array.static StringquoteIdentifier(String string) voidReenable warnings, when next statement is executed.voidreleaseSavepoint(Savepoint savepoint) Removes the specifiedSavepointand subsequentSavepointobjects from the current transaction.voidreset()Reset connection set has it was after creating a "fresh" new connection.voidrollback()Rolls back a transaction.voidUndoes all changes made after the givenSavepointobject was set.Create a new server prepared statement.voidsetAutoCommit(boolean autoCommit) Sets whether this connection is auto commited.voidsetCatalog(String catalog) Sets the given catalog name in order to select a subspace of thisConnectionobject's database in which to work.voidsetClientInfo(String name, String value) Sets the value of the client info property specified by name to the value specified by value.voidsetClientInfo(Properties properties) Sets the value of the connection's client info properties.voidsetDefaultTransactionIsolation(int defaultTransactionIsolation) voidsetHoldability(int holdability) Changes the default holdability ofResultSetobjects created using thisConnectionobject to the given holdability.voidIf failover is not activated, will close connection when a connection error occur.voidsetNetworkTimeout(Executor executor, int milliseconds) Change network timeout.voidsetReadOnly(boolean readOnly) Sets whether this connection is read only.Creates an unnamed savepoint in the current transaction and returns the newSavepointobject that represents it.setSavepoint(String name) Creates a savepoint with the given name in the current transaction and returns the newSavepointobject that represents it.voidvoidsetTransactionIsolation(int level) Attempts to change the transaction isolation level for thisConnectionobject to the one given.voidsetTypeMap(Map<String, Class<?>> map) Installs the givenTypeMapobject as the type map for thisConnectionobject.static StringunquoteIdentifier(String string) Deprecated.since 1.3.0<T> TReturns an object that implements the given interface to allow access to non-standard methods, or standard methods not exposed by the proxy.booleanversionGreaterOrEqual(int major, int minor, int patch) Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface java.sql.Connection
beginRequest, endRequest, setShardingKey, setShardingKey, setShardingKeyIfValid, setShardingKeyIfValid
-
Field Details
-
logger
-
CALLABLE_STATEMENT_PATTERN
Pattern to check the correctness of callable statement query string Legal queries, as documented in JDK have the form: {[?=]call[(arg1,..,,argn)]} -
PREPARABLE_STATEMENT_PATTERN
Check that query can be executed with PREPARE. -
lock
-
protocol
the protocol to communicate with. -
options
the properties for the client. -
pooledConnection
-
nullCatalogMeansCurrent
protected boolean nullCatalogMeansCurrent -
callableStatementCache
-
lowercaseTableNames
private volatile int lowercaseTableNames -
canUseServerTimeout
private boolean canUseServerTimeout -
sessionStateAware
private boolean sessionStateAware -
stateFlag
private int stateFlag -
defaultTransactionIsolation
private int defaultTransactionIsolation -
savepointCount
private int savepointCountsave point count - to generate good names for the savepoints. -
warningsCleared
private boolean warningsCleared
-
-
Constructor Details
-
MariaDbConnection
Creates a new connection with a given protocol and query factory.- Parameters:
protocol- the protocol to use.
-
-
Method Details
-
newConnection
public static MariaDbConnection newConnection(UrlParser urlParser, GlobalStateInfo globalInfo) throws SQLException Create new connection Object.- Parameters:
urlParser- parserglobalInfo- global info- Returns:
- connection object
- Throws:
SQLException- if any connection error occur
-
quoteIdentifier
-
unquoteIdentifier
Deprecated.since 1.3.0UnQuote string.- Parameters:
string- value- Returns:
- unquote string
-
getProtocol
-
createStatement
creates a new statement.- Specified by:
createStatementin interfaceConnection- Returns:
- a statement
- Throws:
SQLException- if we cannot create the statement.
-
createStatement
Creates aStatementobject that will generateResultSetobjects with the given type and concurrency. This method is the same as thecreateStatementmethod above, but it allows the default result set type and concurrency to be overridden. The holdability of the created result sets can be determined by callinggetHoldability().- Specified by:
createStatementin interfaceConnection- Parameters:
resultSetType- a result set type; one ofResultSet.TYPE_FORWARD_ONLY,ResultSet.TYPE_SCROLL_INSENSITIVE, orResultSet.TYPE_SCROLL_SENSITIVEresultSetConcurrency- a concurrency type; one ofResultSet.CONCUR_READ_ONLYorResultSet.CONCUR_UPDATABLE- Returns:
- a new
Statementobject that will generateResultSetobjects with the given type and concurrency
-
createStatement
public Statement createStatement(int resultSetType, int resultSetConcurrency, int resultSetHoldability) Creates aStatementobject that will generateResultSetobjects with the given type, concurrency, and holdability. This method is the same as thecreateStatementmethod above, but it allows the default result set type, concurrency, and holdability to be overridden.- Specified by:
createStatementin interfaceConnection- Parameters:
resultSetType- one of the followingResultSetconstants:ResultSet.TYPE_FORWARD_ONLY,ResultSet.TYPE_SCROLL_INSENSITIVE, orResultSet.TYPE_SCROLL_SENSITIVEresultSetConcurrency- one of the followingResultSetconstants:ResultSet.CONCUR_READ_ONLYorResultSet.CONCUR_UPDATABLEresultSetHoldability- one of the followingResultSetconstants:ResultSet.HOLD_CURSORS_OVER_COMMITorResultSet.CLOSE_CURSORS_AT_COMMIT- Returns:
- a new
Statementobject that will generateResultSetobjects with the given type, concurrency, and holdability - See Also:
-
checkConnection
- Throws:
SQLException
-
clientPrepareStatement
Create a new client prepared statement.- Parameters:
sql- the query.- Returns:
- a client prepared statement.
- Throws:
SQLException- if there is a problem preparing the statement.
-
serverPrepareStatement
Create a new server prepared statement.- Parameters:
sql- the query.- Returns:
- a server prepared statement.
- Throws:
SQLException- if there is a problem preparing the statement.
-
prepareStatement
creates a new prepared statement.- Specified by:
prepareStatementin interfaceConnection- Parameters:
sql- the query.- Returns:
- a prepared statement.
- Throws:
SQLException- if there is a problem preparing the statement.
-
prepareStatement
public PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency) throws SQLException Creates aPreparedStatementobject that will generateResultSetobjects with the given type and concurrency. This method is the same as theprepareStatementmethod above, but it allows the default result set type and concurrency to be overridden. The holdability of the created result sets can be determined by callinggetHoldability().- Specified by:
prepareStatementin interfaceConnection- Parameters:
sql- aStringobject that is the SQL statement to be sent to the database; may contain one or more '?' IN parametersresultSetType- a result set type; one ofResultSet.TYPE_FORWARD_ONLY,ResultSet.TYPE_SCROLL_INSENSITIVE, orResultSet.TYPE_SCROLL_SENSITIVEresultSetConcurrency- a concurrency type; one ofResultSet.CONCUR_READ_ONLYorResultSet.CONCUR_UPDATABLE- Returns:
- a new PreparedStatement object containing the pre-compiled SQL statement that will
produce
ResultSetobjects with the given type and concurrency - Throws:
SQLException- if a database access error occurs, this method is called on a closed connection or the given parameters are notResultSetconstants indicating type and concurrency
-
prepareStatement
public PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException Creates a
PreparedStatementobject that will generateResultSetobjects with the given type, concurrency, and holdability.This method is the same as the
prepareStatementmethod above, but it allows the default result set type, concurrency, and holdability to be overridden.- Specified by:
prepareStatementin interfaceConnection- Parameters:
sql- aStringobject that is the SQL statement to be sent to the database; may contain one or more '?' IN parametersresultSetType- one of the followingResultSetconstants:ResultSet.TYPE_FORWARD_ONLY,ResultSet.TYPE_SCROLL_INSENSITIVE, orResultSet.TYPE_SCROLL_SENSITIVEresultSetConcurrency- one of the followingResultSetconstants:ResultSet.CONCUR_READ_ONLYorResultSet.CONCUR_UPDATABLEresultSetHoldability- one of the followingResultSetconstants:ResultSet.HOLD_CURSORS_OVER_COMMITorResultSet.CLOSE_CURSORS_AT_COMMIT- Returns:
- a new
PreparedStatementobject, containing the pre-compiled SQL statement, that will generateResultSetobjects with the given type, concurrency, and holdability - Throws:
SQLException- if a database access error occurs, this method is called on a closed connection or the given parameters are notResultSetconstants indicating type, concurrency, and holdability- See Also:
-
prepareStatement
Creates a default
PreparedStatementobject that has the capability to retrieve auto-generated keys. The given constant tells the driver whether it should make auto-generated keys available for retrieval. This parameter is ignored if the SQL statement is not anINSERTstatement, or an SQL statement able to return auto-generated keys (the list of such statements is vendor-specific).Note: This method is optimized for handling parametric SQL statements that benefit from precompilation. If the driver supports precompilation, the method
prepareStatementwill send the statement to the database for precompilation. Some drivers may not support precompilation. In this case, the statement may not be sent to the database until thePreparedStatementobject is executed. This has no direct effect on users; however, it does affect which methods throw certain SQLExceptions.Result sets created using the returned
PreparedStatementobject will by default be typeTYPE_FORWARD_ONLYand have a concurrency level ofCONCUR_READ_ONLY. The holdability of the created result sets can be determined by callinggetHoldability().- Specified by:
prepareStatementin interfaceConnection- Parameters:
sql- an SQL statement that may contain one or more '?' IN parameter placeholdersautoGeneratedKeys- a flag indicating whether auto-generated keys should be returned; one ofStatement.RETURN_GENERATED_KEYSorStatement.NO_GENERATED_KEYS- Returns:
- a new
PreparedStatementobject, containing the pre-compiled SQL statement, that will have the capability of returning auto-generated keys - Throws:
SQLException- if a database access error occurs, this method is called on a closed connection or the given parameter is not aStatementconstant indicating whether auto-generated keys should be returned
-
prepareStatement
Creates a default
PreparedStatementobject capable of returning the auto-generated keys designated by the given array. This array contains the indexes of the columns in the target table that contain the auto-generated keys that should be made available. The driver will ignore the array if the SQL statement is not anINSERTstatement, or an SQL statement able to return auto-generated keys (the list of such statements is vendor-specific).An SQL statement with or without IN parameters can be pre-compiled and stored in a
PreparedStatementobject. This object can then be used to efficiently execute this statement multiple times.Note: This method is optimized for handling parametric SQL statements that benefit from precompilation. If the driver supports precompilation, the method
prepareStatementwill send the statement to the database for precompilation. Some drivers may not support precompilation. In this case, the statement may not be sent to the database until thePreparedStatementobject is executed. This has no direct effect on users; however, it does affect which methods throw certain SQLExceptions.Result sets created using the returned
PreparedStatementobject will by default be typeTYPE_FORWARD_ONLYand have a concurrency level ofCONCUR_READ_ONLY. The holdability of the created result sets can be determined by callinggetHoldability().- Specified by:
prepareStatementin interfaceConnection- Parameters:
sql- an SQL statement that may contain one or more '?' IN parameter placeholderscolumnIndexes- an array of column indexes indicating the columns that should be returned from the inserted row or rows- Returns:
- a new
PreparedStatementobject, containing the pre-compiled statement, that is capable of returning the auto-generated keys designated by the given array of column indexes - Throws:
SQLException- if a database access error occurs or this method is called on a closed connection
-
prepareStatement
Creates a default
PreparedStatementobject capable of returning the auto-generated keys designated by the given array. This array contains the names of the columns in the target table that contain the auto-generated keys that should be returned. The driver will ignore the array if the SQL statement is not anINSERTstatement, or an SQL statement able to return auto-generated keys (the list of such statements is vendor-specific).An SQL statement with or without IN parameters can be pre-compiled and stored in a
PreparedStatementobject. This object can then be used to efficiently execute this statement multiple times.Note: This method is optimized for handling parametric SQL statements that benefit from precompilation. If the driver supports precompilation, the method
prepareStatementwill send the statement to the database for precompilation. Some drivers may not support precompilation. In this case, the statement may not be sent to the database until thePreparedStatementobject is executed. This has no direct effect on users; however, it does affect which methods throw certain SQLExceptions.Result sets created using the returned
PreparedStatementobject will by default be typeTYPE_FORWARD_ONLYand have a concurrency level ofCONCUR_READ_ONLY. The holdability of the created result sets can be determined by callinggetHoldability().- Specified by:
prepareStatementin interfaceConnection- Parameters:
sql- an SQL statement that may contain one or more '?' IN parameter placeholderscolumnNames- an array of column names indicating the columns that should be returned from the inserted row or rows- Returns:
- a new
PreparedStatementobject, containing the pre-compiled statement, that is capable of returning the auto-generated keys designated by the given array of column names - Throws:
SQLException- if a database access error occurs or this method is called on a closed connection
-
internalPrepareStatement
private PreparedStatement internalPrepareStatement(String sql, int resultSetScrollType, int resultSetConcurrency, int autoGeneratedKeys) throws SQLException Send ServerPrepareStatement or ClientPrepareStatement depending on SQL query and options If server side and PREPARE can be delayed, a facade will be return, to have a fallback on client prepareStatement.- Parameters:
sql- sql queryresultSetScrollType- one of the followingResultSetconstants:ResultSet.TYPE_FORWARD_ONLY,ResultSet.TYPE_SCROLL_INSENSITIVE, orResultSet.TYPE_SCROLL_SENSITIVEresultSetConcurrency- a concurrency type; one ofResultSet.CONCUR_READ_ONLYorResultSet.CONCUR_UPDATABLEautoGeneratedKeys- a flag indicating whether auto-generated keys should be returned; one ofStatement.RETURN_GENERATED_KEYSorStatement.NO_GENERATED_KEYS- Returns:
- PrepareStatement
- Throws:
SQLException- if a connection error occur during the server preparation.
-
prepareCall
Creates aCallableStatementobject for calling database stored procedures. TheCallableStatementobject provides methods for setting up its IN and OUT parameters, and methods for executing the call to a stored procedure. example : {?= call <procedure-name>[(<arg1>,<arg2>, ...)]} or {call <procedure-name>[(<arg1>,<arg2>, ...)]}Note: This method is optimized for handling stored procedure call statements.
- Specified by:
prepareCallin interfaceConnection- Parameters:
sql- an SQL statement that may contain one or more '?' parameter placeholders. Typically this statement is specified using JDBC call escape syntax.- Returns:
- a new default
CallableStatementobject containing the pre-compiled SQL statement - Throws:
SQLException- if a database access error occurs or this method is called on a closed connection
-
prepareCall
public CallableStatement prepareCall(String sql, int resultSetType, int resultSetConcurrency) throws SQLException Creates aCallableStatementobject that will generateResultSetobjects with the given type and concurrency. This method is the same as theprepareCallmethod above, but it allows the default result set type and concurrency to be overridden. The holdability of the created result sets can be determined by callinggetHoldability().- Specified by:
prepareCallin interfaceConnection- Parameters:
sql- aStringobject that is the SQL statement to be sent to the database; may contain on or more '?' parametersresultSetType- a result set type; one ofResultSet.TYPE_FORWARD_ONLY,ResultSet.TYPE_SCROLL_INSENSITIVE, orResultSet.TYPE_SCROLL_SENSITIVEresultSetConcurrency- a concurrency type; one ofResultSet.CONCUR_READ_ONLYorResultSet.CONCUR_UPDATABLE- Returns:
- a new
CallableStatementobject containing the pre-compiled SQL statement that will produceResultSetobjects with the given type and concurrency - Throws:
SQLException- if a database access error occurs, this method is called on a closed connection or the given parameters are notResultSetconstants indicating type and concurrency
-
prepareCall
public CallableStatement prepareCall(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException Creates aCallableStatementobject that will generateResultSetobjects with the given type and concurrency. This method is the same as theprepareCallmethod above, but it allows the default result set type, result set concurrency type and holdability to be overridden.- Specified by:
prepareCallin interfaceConnection- Parameters:
sql- aStringobject that is the SQL statement to be sent to the database; may contain on or more '?' parametersresultSetType- one of the followingResultSetconstants:ResultSet.TYPE_FORWARD_ONLY,ResultSet.TYPE_SCROLL_INSENSITIVE, orResultSet.TYPE_SCROLL_SENSITIVEresultSetConcurrency- one of the followingResultSetconstants:ResultSet.CONCUR_READ_ONLYorResultSet.CONCUR_UPDATABLEresultSetHoldability- one of the followingResultSetconstants:ResultSet.HOLD_CURSORS_OVER_COMMITorResultSet.CLOSE_CURSORS_AT_COMMIT- Returns:
- a new
CallableStatementobject, containing the pre-compiled SQL statement, that will generateResultSetobjects with the given type, concurrency, and holdability - Throws:
SQLException- if a database access error occurs, this method is called on a closed connection or the given parameters are notResultSetconstants indicating type, concurrency, and holdability- See Also:
-
createNewCallableStatement
private CallableStatement createNewCallableStatement(String query, String procedureName, boolean isFunction, String databaseAndProcedure, String database, String arguments, int resultSetType, int resultSetConcurrency) throws SQLException - Throws:
SQLException
-
nativeSQL
- Specified by:
nativeSQLin interfaceConnection- Throws:
SQLException
-
getAutoCommit
returns true if statements on this connection are auto commited.- Specified by:
getAutoCommitin interfaceConnection- Returns:
- true if auto commit is on.
- Throws:
SQLException- if there is an error
-
setAutoCommit
Sets whether this connection is auto commited.- Specified by:
setAutoCommitin interfaceConnection- Parameters:
autoCommit- if it should be auto commited.- Throws:
SQLException- if something goes wrong talking to the server.
-
commit
Sends commit to the server.- Specified by:
commitin interfaceConnection- Throws:
SQLException- if there is an error commiting.
-
rollback
Rolls back a transaction.- Specified by:
rollbackin interfaceConnection- Throws:
SQLException- if there is an error rolling back.
-
rollback
Undoes all changes made after the given
Savepointobject was set.This method should be used only when auto-commit has been disabled.
- Specified by:
rollbackin interfaceConnection- Parameters:
savepoint- theSavepointobject to roll back to- Throws:
SQLException- if a database access error occurs, this method is called while participating in a distributed transaction, this method is called on a closed connection, theSavepointobject is no longer valid, or thisConnectionobject is currently in auto-commit mode- See Also:
-
close
close the connection.- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceConnection- Throws:
SQLException- if there is a problem talking to the server.
-
isClosed
public boolean isClosed()checks if the connection is closed.- Specified by:
isClosedin interfaceConnection- Returns:
- true if the connection is closed
-
getMetaData
returns the meta data about the database.- Specified by:
getMetaDatain interfaceConnection- Returns:
- meta data about the db.
-
isReadOnly
Retrieves whether thisConnectionobject is in read-only mode.- Specified by:
isReadOnlyin interfaceConnection- Returns:
trueif thisConnectionobject is read-only;falseotherwise- Throws:
SQLException- SQLException if a database access error occurs or this method is called on a closed connection
-
setReadOnly
Sets whether this connection is read only.- Specified by:
setReadOnlyin interfaceConnection- Parameters:
readOnly- true if it should be read only.- Throws:
SQLException- if there is a problem
-
getCatalog
Retrieves this
Connectionobject's current catalog name.- Specified by:
getCatalogin interfaceConnection- Returns:
- the current catalog name or
nullif there is none - Throws:
SQLException- if a database access error occurs or this method is called on a closed connection- See Also:
-
setCatalog
Sets the given catalog name in order to select a subspace of this
Connectionobject's database in which to work.If the driver does not support catalogs, it will silently ignore this request.
MariaDB treats catalogs and databases as equivalent- Specified by:
setCatalogin interfaceConnection- Parameters:
catalog- the name of a catalog (subspace in thisConnectionobject's database) in which to work- Throws:
SQLException- if a database access error occurs or this method is called on a closed connection- See Also:
-
isServerMariaDb
- Throws:
SQLException
-
versionGreaterOrEqual
public boolean versionGreaterOrEqual(int major, int minor, int patch) -
getTransactionIsolation
Retrieves thisConnectionobject's current transaction isolation level.- Specified by:
getTransactionIsolationin interfaceConnection- Returns:
- the current transaction isolation level, which will be one of the following constants:
Connection.TRANSACTION_READ_UNCOMMITTED,Connection.TRANSACTION_READ_COMMITTED,Connection.TRANSACTION_REPEATABLE_READ,Connection.TRANSACTION_SERIALIZABLE, orConnection.TRANSACTION_NONE. - Throws:
SQLException- if a database access error occurs or this method is called on a closed connection- See Also:
-
setTransactionIsolation
Attempts to change the transaction isolation level for this
Connectionobject to the one given. The constants defined in the interfaceConnectionare the possible transaction isolation levels.Note: If this method is called during a transaction, the result is implementation-defined.
- Specified by:
setTransactionIsolationin interfaceConnection- Parameters:
level- one of the followingConnectionconstants:Connection.TRANSACTION_READ_UNCOMMITTED,Connection.TRANSACTION_READ_COMMITTED,Connection.TRANSACTION_REPEATABLE_READ, orConnection.TRANSACTION_SERIALIZABLE. (Note thatConnection.TRANSACTION_NONEcannot be used because it specifies that transactions are not supported.)- Throws:
SQLException- if a database access error occurs, this method is called on a closed connection or the given parameter is not one of theConnectionconstants- See Also:
-
getWarnings
Retrieves the first warning reported by calls on this
Connectionobject. If there is more than one warning, subsequent warnings will be chained to the first one and can be retrieved by calling the methodSQLWarning.getNextWarningon the warning that was retrieved previously.This method may not be called on a closed connection; doing so will cause an
SQLExceptionto be thrown.Note: Subsequent warnings will be chained to this SQLWarning.
- Specified by:
getWarningsin interfaceConnection- Returns:
- the first
SQLWarningobject ornullif there are none - Throws:
SQLException- if a database access error occurs or this method is called on a closed connection- See Also:
-
clearWarnings
Clears all warnings reported for thisConnectionobject. After a call to this method, the methodgetWarningsreturnsnulluntil a new warning is reported for thisConnectionobject.- Specified by:
clearWarningsin interfaceConnection- Throws:
SQLException- SQLException if a database access error occurs or this method is called on a closed connection
-
reenableWarnings
public void reenableWarnings()Reenable warnings, when next statement is executed. -
getTypeMap
Retrieves theMapobject associated with thisConnectionobject. Unless the application has added an entry, the type map returned will be empty.- Specified by:
getTypeMapin interfaceConnection- Returns:
- the
java.util.Mapobject associated with thisConnectionobject - Since:
- 1.2
- See Also:
-
setTypeMap
Installs the givenTypeMapobject as the type map for thisConnectionobject. The type map will be used for the custom mapping of SQL structured types and distinct types.- Specified by:
setTypeMapin interfaceConnection- Parameters:
map- thejava.util.Mapobject to install as the replacement for thisConnectionobject's default type map- Throws:
SQLException- if a database access error occurs, this method is called on a closed connection or the given parameter is not ajava.util.Mapobject- See Also:
-
getHoldability
public int getHoldability()Retrieves the current holdability ofResultSetobjects created using thisConnectionobject.- Specified by:
getHoldabilityin interfaceConnection- Returns:
- the holdability, one of
ResultSet.HOLD_CURSORS_OVER_COMMITorResultSet.CLOSE_CURSORS_AT_COMMIT - Since:
- 1.4
- See Also:
-
setHoldability
public void setHoldability(int holdability) Changes the default holdability ofResultSetobjects created using thisConnectionobject to the given holdability. The default holdability ofResultSetobjects can be be determined by invokingDatabaseMetaData.getResultSetHoldability().- Specified by:
setHoldabilityin interfaceConnection- Parameters:
holdability- aResultSetholdability constant; one ofResultSet.HOLD_CURSORS_OVER_COMMITorResultSet.CLOSE_CURSORS_AT_COMMIT- See Also:
-
setSavepoint
Creates an unnamed savepoint in the current transaction and returns the new
Savepointobject that represents it.if setSavepoint is invoked outside of an active transaction, a transaction will be started at this newly created savepoint.
- Specified by:
setSavepointin interfaceConnection- Returns:
- the new
Savepointobject - Throws:
SQLException- if a database access error occurs, this method is called while participating in a distributed transaction, this method is called on a closed connection or thisConnectionobject is currently in auto-commit mode- Since:
- 1.4
- See Also:
-
setSavepoint
Creates a savepoint with the given name in the current transaction and returns the new
if setSavepoint is invoked outside of an active transaction, a transaction will be started at this newly created savepoint.Savepointobject that represents it.- Specified by:
setSavepointin interfaceConnection- Parameters:
name- aStringcontaining the name of the savepoint- Returns:
- the new
Savepointobject - Throws:
SQLException- if a database access error occurs, this method is called while participating in a distributed transaction, this method is called on a closed connection or thisConnectionobject is currently in auto-commit mode- Since:
- 1.4
- See Also:
-
releaseSavepoint
Removes the specifiedSavepointand subsequentSavepointobjects from the current transaction. Any reference to the savepoint after it have been removed will cause anSQLExceptionto be thrown.- Specified by:
releaseSavepointin interfaceConnection- Parameters:
savepoint- theSavepointobject to be removed- Throws:
SQLException- if a database access error occurs, this method is called on a closed connection or the givenSavepointobject is not a valid savepoint in the current transaction
-
createClob
Constructs an object that implements theClobinterface. The object returned initially contains no data. ThesetAsciiStream,setCharacterStreamandsetStringmethods of theClobinterface may be used to add data to theClob.- Specified by:
createClobin interfaceConnection- Returns:
- An object that implements the
Clobinterface
-
createBlob
Constructs an object that implements theBlobinterface. The object returned initially contains no data. ThesetBinaryStreamandsetBytesmethods of theBlobinterface may be used to add data to theBlob.- Specified by:
createBlobin interfaceConnection- Returns:
- An object that implements the
Blobinterface
-
createNClob
Constructs an object that implements theNClobinterface. The object returned initially contains no data. ThesetAsciiStream,setCharacterStreamandsetStringmethods of theNClobinterface may be used to add data to theNClob.- Specified by:
createNClobin interfaceConnection- Returns:
- An object that implements the
NClobinterface
-
createSQLXML
Constructs an object that implements theSQLXMLinterface. The object returned initially contains no data. ThecreateXmlStreamWriterobject andsetStringmethod of theSQLXMLinterface may be used to add data to theSQLXMLobject.- Specified by:
createSQLXMLin interfaceConnection- Returns:
- An object that implements the
SQLXMLinterface - Throws:
SQLException- if an object that implements theSQLXMLinterface can not be constructed, this method is called on a closed connection or a database access error occurs.
-
isValid
Returns true if the connection has not been closed and is still valid. The driver shall submit a query on the connection or use some other mechanism that positively verifies the connection is still valid when this method is called.
The query submitted by the driver to validate the connection shall be executed in the context of the current transaction.
- Specified by:
isValidin interfaceConnection- Parameters:
timeout- - The time in seconds to wait for the database operation used to validate the connection to complete. If the timeout period expires before the operation completes, this method returns false. A value of 0 indicates a timeout is not applied to the database operation.- Returns:
- true if the connection is valid, false otherwise
- Throws:
SQLException- if the value supplied fortimeoutis less then 0- Since:
- 1.6
- See Also:
-
checkClientClose
- Throws:
SQLClientInfoException
-
checkClientReconnect
- Throws:
SQLClientInfoException
-
checkClientValidProperty
- Throws:
SQLClientInfoException
-
buildClientQuery
-
setClientInfo
Sets the value of the client info property specified by name to the value specified by value.
Applications may use the
DatabaseMetaData.getClientInfoPropertiesmethod to determine the client info properties supported by the driver and the maximum length that may be specified for each property.The driver stores the value specified in a suitable location in the database. For example in a special register, session parameter, or system table column. For efficiency the driver may defer setting the value in the database until the next time a statement is executed or prepared. Other than storing the client information in the appropriate place in the database, these methods shall not alter the behavior of the connection in anyway. The values supplied to these methods are used for accounting, diagnostics and debugging purposes only.
The driver shall generate a warning if the client info name specified is not recognized by the driver.
If the value specified to this method is greater than the maximum length for the property the driver may either truncate the value and generate a warning or generate a
SQLClientInfoException. If the driver generates aSQLClientInfoException, the value specified was not set on the connection.The following are standard client info properties. Drivers are not required to support these properties however if the driver supports a client info property that can be described by one of the standard properties, the standard property name should be used.
- ApplicationName - The name of the application currently utilizing the connection
- ClientUser - The name of the user that the application using the connection is performing work for. This may not be the same as the user name that was used in establishing the connection.
- ClientHostname - The hostname of the computer the application using the connection is running on.
- Specified by:
setClientInfoin interfaceConnection- Parameters:
name- The name of the client info property to setvalue- The value to set the client info property to. If the value is null, the current value of the specified property is cleared.- Throws:
SQLClientInfoException- if the database server returns an error while setting the client info value on the database server or this method is called on a closed connection- Since:
- 1.6
-
setClientInfo
Sets the value of the connection's client info properties. The
Propertiesobject contains the names and values of the client info properties to be set. The set of client info properties contained in the properties list replaces the current set of client info properties on the connection. If a property that is currently set on the connection is not present in the properties list, that property is cleared. Specifying an empty properties list will clear all of the properties on the connection. SeesetClientInfo (String, String)for more information.If an error occurs in setting any of the client info properties, a
SQLClientInfoExceptionis thrown. TheSQLClientInfoExceptioncontains information indicating which client info properties were not set. The state of the client information is unknown because some databases do not allow multiple client info properties to be set atomically. For those databases, one or more properties may have been set before the error occurred.- Specified by:
setClientInfoin interfaceConnection- Parameters:
properties- the list of client info properties to set- Throws:
SQLClientInfoException- if the database server returns an error while setting the clientInfo values on the database server or this method is called on a closed connection- Since:
- 1.6
- See Also:
-
getClientInfo
Returns a list containing the name and current value of each client info property supported by the driver. The value of a client info property may be null if the property has not been set and does not have a default value.- Specified by:
getClientInfoin interfaceConnection- Returns:
- A
Propertiesobject that contains the name and current value of each of the client info properties supported by the driver. - Throws:
SQLException- if the database server returns an error when fetching the client info values from the database or this method is called on a closed connection
-
getClientInfo
Returns the value of the client info property specified by name. This method may return null if the specified client info property has not been set and does not have a default value. This method will also return null if the specified client info property name is not supported by the driver. Applications may use theDatabaseMetaData.getClientInfoPropertiesmethod to determine the client info properties supported by the driver.- Specified by:
getClientInfoin interfaceConnection- Parameters:
name- The name of the client info property to retrieve- Returns:
- The value of the client info property specified
- Throws:
SQLException- if the database server returns an error when fetching the client info value from the database or this method is called on a closed connection- Since:
- 1.6
- See Also:
-
createArrayOf
Factory method for creating Array objects. Note: WhencreateArrayOfis used to create an array object that maps to a primitive data type, then it is implementation-defined whether theArrayobject is an array of that primitive data type or an array ofObject. Note: The JDBC driver is responsible for mapping the elementsObjectarray to the default JDBC SQL type defined in java.sql.Types for the given class ofObject. The default mapping is specified in Appendix B of the JDBC specification. If the resulting JDBC type is not the appropriate type for the given typeName then it is implementation defined whether anSQLExceptionis thrown or the driver supports the resulting conversion.- Specified by:
createArrayOfin interfaceConnection- Parameters:
typeName- the SQL name of the type the elements of the array map to. The typeName is a database-specific name which may be the name of a built-in type, a user-defined type or a standard SQL type supported by this database. This is the value returned byArray.getBaseTypeNameelements- the elements that populate the returned object- Returns:
- an Array object whose elements map to the specified SQL type
- Throws:
SQLException- if a database error occurs, the JDBC type is not appropriate for the typeName and the conversion is not supported, the typeName is null or this method is called on a closed connection
-
createStruct
Factory method for creating Struct objects.- Specified by:
createStructin interfaceConnection- Parameters:
typeName- the SQL type name of the SQL structured type that thisStructobject maps to. The typeName is the name of a user-defined type that has been defined for this database. It is the value returned byStruct.getSQLTypeName.attributes- the attributes that populate the returned object- Returns:
- a Struct object that maps to the given SQL type and is populated with the given attributes
- Throws:
SQLException- if a database error occurs, the typeName is null or this method is called on a closed connection
-
unwrap
Returns an object that implements the given interface to allow access to non-standard methods, or standard methods not exposed by the proxy. If the receiver implements the interface then the result is the receiver or a proxy for the receiver. If the receiver is a wrapper and the wrapped object implements the interface then the result is the wrapped object or a proxy for the wrapped object. Otherwise return the the result of callingunwraprecursively on the wrapped object or a proxy for that result. If the receiver is not a wrapper and does not implement the interface, then anSQLExceptionis thrown.- Specified by:
unwrapin interfaceWrapper- Parameters:
iface- A Class defining an interface that the result must implement.- Returns:
- an object that implements the interface. May be a proxy for the actual implementing object.
- Throws:
SQLException- If no object found that implements the interface- Since:
- 1.6
-
isWrapperFor
Returns true if this either implements the interface argument or is directly or indirectly a wrapper for an object that does. Returns false otherwise. If this implements the interface then return true, else if this is a wrapper then return the result of recursively callingisWrapperForon the wrapped object. If this does not implement the interface and is not a wrapper, return false. This method should be implemented as a low-cost operation compared tounwrapso that callers can use this method to avoid expensiveunwrapcalls that may fail. If this method returns true then callingunwrapwith the same argument should succeed.- Specified by:
isWrapperForin interfaceWrapper- Parameters:
iface- a Class defining an interface.- Returns:
- true if this implements the interface or directly or indirectly wraps an object that does.
- Since:
- 1.6
-
getUsername
Deprecated.returns the username for the connection.- Returns:
- the username.
-
getHostname
Deprecated.returns the hostname for the connection.- Returns:
- the hostname.
-
getPort
Deprecated.returns the port for the connection.- Returns:
- the port
-
getPinGlobalTxToPhysicalConnection
protected boolean getPinGlobalTxToPhysicalConnection() -
setHostFailed
public void setHostFailed()If failover is not activated, will close connection when a connection error occur. -
getLowercaseTableNames
Are table case sensitive or not . Default Value: 0 (Unix), 1 (Windows), 2 (Mac OS X). If set to 0 (the default on Unix-based systems), table names and aliases and database names are compared in a case-sensitive manner. If set to 1 (the default on Windows), names are stored in lowercase and not compared in a case-sensitive manner. If set to 2 (the default on Mac OS X), names are stored as declared, but compared in lowercase.- Returns:
- int value.
- Throws:
SQLException- if a connection error occur
-
abort
Abort connection.- Specified by:
abortin interfaceConnection- Parameters:
executor- executor- Throws:
SQLException- if security manager doesn't permit it.
-
getNetworkTimeout
Get network timeout.- Specified by:
getNetworkTimeoutin interfaceConnection- Returns:
- timeout
- Throws:
SQLException- if database socket error occur
-
getSchema
- Specified by:
getSchemain interfaceConnection
-
setSchema
- Specified by:
setSchemain interfaceConnection
-
setNetworkTimeout
Change network timeout.- Specified by:
setNetworkTimeoutin interfaceConnection- Parameters:
executor- executor (can be null)milliseconds- network timeout in milliseconds.- Throws:
SQLException- if security manager doesn't permit it.
-
getServerThreadId
public long getServerThreadId() -
canUseServerTimeout
public boolean canUseServerTimeout() -
setDefaultTransactionIsolation
public void setDefaultTransactionIsolation(int defaultTransactionIsolation) -
reset
Reset connection set has it was after creating a "fresh" new connection. defaultTransactionIsolation must have been initialized.BUT : - session variable state are reset only if option useResetConnection is set and - if using the option "useServerPrepStmts", PREPARE statement are still prepared
- Throws:
SQLException- if resetting operation failed
-
includeDeadLockInfo
public boolean includeDeadLockInfo() -
includeThreadsTraces
public boolean includeThreadsTraces()
-