public class MonitoredConnection
extends java.lang.Object
implements java.sql.Connection
This class is a wrapper for java.sql.Connection. All calls are passed through to an embedded instance of java.sql.Connection.
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
CLASS_VERSION
Class version string
|
Constructor and Description |
---|
MonitoredConnection(java.sql.Connection pWrapped,
ApplicationLogging pLog,
ConnectionStats pStats,
java.lang.String pId)
Constructs a new wrapper java.sql.Connection wrapper
|
MonitoredConnection(java.sql.Connection pWrapped,
ApplicationLogging pLog,
ConnectionStats pStats,
java.lang.String pId,
java.lang.Integer pMaxFieldSize,
java.lang.Integer pMaxRows,
java.lang.Integer pQueryTimeout)
Constructs a new wrapper java.sql.Connection wrapper
|
Modifier and Type | Method and Description |
---|---|
void |
abort(java.util.concurrent.Executor executor)
Terminates an open connection.
|
void |
checkConnectionIntegrity()
Checks to see if this connection has been closed, i.e.
|
void |
clearWarnings()
Wraps the call to clearWarnings
|
void |
close()
Wraps the call to close
|
void |
commit()
Wraps the call to commit
|
java.sql.Array |
createArrayOf(java.lang.String typeName,
java.lang.Object[] elements)
Factory method for creating Array objects.
|
java.sql.Blob |
createBlob()
Constructs an object that implements the
Blob interface. |
java.sql.Clob |
createClob()
Constructs an object that implements the
Clob interface. |
java.sql.NClob |
createNClob()
Constructs an object that implements the
NClob interface. |
java.sql.SQLXML |
createSQLXML()
Constructs an object that implements the
SQLXML interface. |
java.sql.Statement |
createStatement()
Wraps the call to createStatement
|
java.sql.Statement |
createStatement(int p0,
int p1)
Wraps the call to createStatement
|
java.sql.Statement |
createStatement(int resultSetType,
int resultSetConcurrency,
int resultSetHoldability)
Creates a
Statement object that will generate
ResultSet objects with the given type, concurrency,
and holdability. |
java.sql.Struct |
createStruct(java.lang.String typeName,
java.lang.Object[] attributes)
Factory method for creating Struct objects.
|
java.lang.String |
getActiveQuery() |
boolean |
getAutoCommit()
Wraps the call to getAutoCommit
|
java.lang.String |
getCatalog()
Wraps the call to getCatalog
|
java.util.Properties |
getClientInfo()
Returns a list containing the name and current value of each client info
property supported by the driver.
|
java.lang.String |
getClientInfo(java.lang.String name)
Returns the value of the client info property specified by name.
|
java.lang.String |
getCreationStackTrace() |
int |
getHoldability()
Retrieves the current holdability of
ResultSet objects
created using this Connection object. |
java.lang.String |
getId() |
ApplicationLogging |
getLog() |
java.lang.Integer |
getMaxFieldSize() |
java.lang.Integer |
getMaxRows() |
java.sql.DatabaseMetaData |
getMetaData()
Wraps the call to getMetaData
|
int |
getNetworkTimeout()
Retrieves the number of milliseconds the driver will
wait for a database request to complete.
|
java.lang.Integer |
getQueryTimeout() |
ResourceObject |
getResourceObject() |
java.lang.String |
getSchema()
Retrieves this
Connection object's current schema name. |
ConnectionStats |
getStats() |
int |
getTransactionIsolation()
Wraps the call to getTransactionIsolation
|
java.util.Map |
getTypeMap()
Wraps the call to getTypeMap
|
java.sql.SQLWarning |
getWarnings()
Wraps the call to getWarnings
|
java.sql.Connection |
getWrapped() |
boolean |
isClosed()
Wraps the call to isClosed
|
boolean |
isReadOnly()
Wraps the call to isReadOnly
|
boolean |
isValid(int timeout)
Returns true if the connection has not been closed and is still valid.
|
boolean |
isWrapperFor(java.lang.Class<?> pInterface)
Returns true if this class implements the pInterface argument
|
java.lang.String |
nativeSQL(java.lang.String p0)
Wraps the call to nativeSQL
|
java.sql.CallableStatement |
prepareCall(java.lang.String p0)
Wraps the call to prepareCall
|
java.sql.CallableStatement |
prepareCall(java.lang.String p0,
int p1,
int p2)
Wraps the call to prepareCall
|
java.sql.CallableStatement |
prepareCall(java.lang.String sql,
int resultSetType,
int resultSetConcurrency,
int resultSetHoldability)
Creates a
CallableStatement object that will generate
ResultSet objects with the given type and concurrency. |
java.sql.PreparedStatement |
prepareStatement(java.lang.String p0)
Wraps the call to prepareStatement
|
java.sql.PreparedStatement |
prepareStatement(java.lang.String sql,
int autoGeneratedKeys)
Creates a default
PreparedStatement object that has
the capability to retrieve auto-generated keys. |
java.sql.PreparedStatement |
prepareStatement(java.lang.String sql,
int[] columnIndexes)
Creates a default
PreparedStatement object capable
of returning the auto-generated keys designated by the given array. |
java.sql.PreparedStatement |
prepareStatement(java.lang.String p0,
int p1,
int p2)
Wraps the call to prepareStatement
|
java.sql.PreparedStatement |
prepareStatement(java.lang.String sql,
int resultSetType,
int resultSetConcurrency,
int resultSetHoldability)
Creates a
PreparedStatement object that will generate
ResultSet objects with the given type, concurrency,
and holdability. |
java.sql.PreparedStatement |
prepareStatement(java.lang.String sql,
java.lang.String[] columnNames)
Creates a default
PreparedStatement object capable
of returning the auto-generated keys designated by the given array. |
void |
releaseSavepoint(java.sql.Savepoint savepoint)
Removes the given
Savepoint object from the current
transaction. |
void |
rollback()
Wraps the call to rollback
|
void |
rollback(java.sql.Savepoint savepoint)
Undoes all changes made after the given
Savepoint object
was set. |
void |
setActiveQuery(java.lang.String pActiveQuery) |
void |
setAutoCommit(boolean p0)
Wraps the call to setAutoCommit
|
void |
setCatalog(java.lang.String p0)
Wraps the call to setCatalog
|
void |
setClientInfo(java.util.Properties properties)
Sets the value of the connection's client info properties.
|
void |
setClientInfo(java.lang.String name,
java.lang.String value)
Sets the value of the client info property specified by name to the
value specified by value.
|
void |
setCreationStackTrace(java.lang.String pStackTrace) |
void |
setHoldability(int holdability)
Changes the holdability of
ResultSet objects
created using this Connection object to the given
holdability. |
void |
setId(java.lang.String pId) |
void |
setLog(ApplicationLogging pLog) |
void |
setMaxFieldSize(java.lang.Integer pMaxFieldSize) |
void |
setMaxRows(java.lang.Integer pMaxRows) |
void |
setNetworkTimeout(java.util.concurrent.Executor executor,
int milliseconds)
Sets the maximum period a
Connection or
objects created from the Connection
will wait for the database to reply to any one request. |
void |
setQueryTimeout(java.lang.Integer pQueryTimeout) |
void |
setReadOnly(boolean p0)
Wraps the call to setReadOnly
|
void |
setResourceObject(ResourceObject pRobj) |
java.sql.Savepoint |
setSavepoint()
Creates an unnamed savepoint in the current transaction and
returns the new
Savepoint object that represents it. |
java.sql.Savepoint |
setSavepoint(java.lang.String name)
Creates a savepoint with the given name in the current transaction
and returns the new
Savepoint object that represents it. |
void |
setSchema(java.lang.String schema)
Sets the given schema name to access.
|
void |
setStats(ConnectionStats pStats) |
void |
setTransactionIsolation(int p0)
Wraps the call to setTransactionIsolation
|
void |
setTypeMap(java.util.Map p0)
Wraps the call to setTypeMap
|
void |
setWrapped(java.sql.Connection pWrapped) |
<T> T |
unwrap(java.lang.Class<T> pInterface)
Returns an object that implements the given interface
|
public MonitoredConnection(java.sql.Connection pWrapped, ApplicationLogging pLog, ConnectionStats pStats, java.lang.String pId)
pWrapped
- the instance being wrappedpLog
- the ApplicationLogging to which output should be
sent. SQL statements are logged as info, the actual arguments
and result set values are logged as debug. If null, then no
logging is sent.pStats
- the object that receives notifications about
connection statistics, such as the number of statements executed.
If null, then no notifications are sent.pId
- an identifier for the connection, used when logging.public MonitoredConnection(java.sql.Connection pWrapped, ApplicationLogging pLog, ConnectionStats pStats, java.lang.String pId, java.lang.Integer pMaxFieldSize, java.lang.Integer pMaxRows, java.lang.Integer pQueryTimeout)
pWrapped
- the instance being wrappedpLog
- the ApplicationLogging to which output should be
sent. SQL statements are logged as info, the actual arguments
and result set values are logged as debug. If null, then no
logging is sent.pStats
- the object that receives notifications about
connection statistics, such as the number of statements executed.
If null, then no notifications are sent.pId
- an identifier for the connection, used when logging.pMaxFieldSize
- if not null then set on every Statement createdpMaxRow
- if not null then set on every Statement createdpQueryTimeout
- if not null then set on every Statement createdpublic ResourceObject getResourceObject()
public void setResourceObject(ResourceObject pRobj)
public java.sql.Connection getWrapped()
public void setWrapped(java.sql.Connection pWrapped)
public ApplicationLogging getLog()
public void setLog(ApplicationLogging pLog)
public ConnectionStats getStats()
public void setStats(ConnectionStats pStats)
public java.lang.String getId()
public void setId(java.lang.String pId)
public java.lang.Integer getMaxFieldSize()
public void setMaxFieldSize(java.lang.Integer pMaxFieldSize)
public java.lang.Integer getMaxRows()
public void setMaxRows(java.lang.Integer pMaxRows)
public java.lang.Integer getQueryTimeout()
public void setQueryTimeout(java.lang.Integer pQueryTimeout)
public java.lang.String getCreationStackTrace()
public void setCreationStackTrace(java.lang.String pStackTrace)
public java.lang.String getActiveQuery()
public void setActiveQuery(java.lang.String pActiveQuery)
public void checkConnectionIntegrity() throws java.sql.SQLException
java.sql.SQLException
public java.sql.Statement createStatement() throws java.sql.SQLException
createStatement
in interface java.sql.Connection
java.sql.SQLException
public java.sql.Statement createStatement(int p0, int p1) throws java.sql.SQLException
createStatement
in interface java.sql.Connection
java.sql.SQLException
public java.sql.PreparedStatement prepareStatement(java.lang.String p0) throws java.sql.SQLException
prepareStatement
in interface java.sql.Connection
java.sql.SQLException
public java.sql.PreparedStatement prepareStatement(java.lang.String p0, int p1, int p2) throws java.sql.SQLException
prepareStatement
in interface java.sql.Connection
java.sql.SQLException
public java.sql.CallableStatement prepareCall(java.lang.String p0) throws java.sql.SQLException
prepareCall
in interface java.sql.Connection
java.sql.SQLException
public java.sql.CallableStatement prepareCall(java.lang.String p0, int p1, int p2) throws java.sql.SQLException
prepareCall
in interface java.sql.Connection
java.sql.SQLException
public java.lang.String nativeSQL(java.lang.String p0) throws java.sql.SQLException
nativeSQL
in interface java.sql.Connection
java.sql.SQLException
public void setAutoCommit(boolean p0) throws java.sql.SQLException
setAutoCommit
in interface java.sql.Connection
java.sql.SQLException
public boolean getAutoCommit() throws java.sql.SQLException
getAutoCommit
in interface java.sql.Connection
java.sql.SQLException
public void commit() throws java.sql.SQLException
commit
in interface java.sql.Connection
java.sql.SQLException
public void rollback() throws java.sql.SQLException
rollback
in interface java.sql.Connection
java.sql.SQLException
public void close() throws java.sql.SQLException
close
in interface java.lang.AutoCloseable
close
in interface java.sql.Connection
java.sql.SQLException
public boolean isClosed() throws java.sql.SQLException
isClosed
in interface java.sql.Connection
java.sql.SQLException
public java.sql.DatabaseMetaData getMetaData() throws java.sql.SQLException
getMetaData
in interface java.sql.Connection
java.sql.SQLException
public void setTypeMap(java.util.Map p0) throws java.sql.SQLException
setTypeMap
in interface java.sql.Connection
java.sql.SQLException
public java.util.Map getTypeMap() throws java.sql.SQLException
getTypeMap
in interface java.sql.Connection
java.sql.SQLException
public void setReadOnly(boolean p0) throws java.sql.SQLException
setReadOnly
in interface java.sql.Connection
java.sql.SQLException
public boolean isReadOnly() throws java.sql.SQLException
isReadOnly
in interface java.sql.Connection
java.sql.SQLException
public void setCatalog(java.lang.String p0) throws java.sql.SQLException
setCatalog
in interface java.sql.Connection
java.sql.SQLException
public java.lang.String getCatalog() throws java.sql.SQLException
getCatalog
in interface java.sql.Connection
java.sql.SQLException
public void setTransactionIsolation(int p0) throws java.sql.SQLException
setTransactionIsolation
in interface java.sql.Connection
java.sql.SQLException
public int getTransactionIsolation() throws java.sql.SQLException
getTransactionIsolation
in interface java.sql.Connection
java.sql.SQLException
public java.sql.SQLWarning getWarnings() throws java.sql.SQLException
getWarnings
in interface java.sql.Connection
java.sql.SQLException
public void clearWarnings() throws java.sql.SQLException
clearWarnings
in interface java.sql.Connection
java.sql.SQLException
public void setHoldability(int holdability) throws java.sql.SQLException
ResultSet
objects
created using this Connection
object to the given
holdability.setHoldability
in interface java.sql.Connection
holdability
- a ResultSet
holdability constant; one of
ResultSet.HOLD_CURSORS_OVER_COMMIT
or
ResultSet.CLOSE_CURSORS_AT_COMMIT
java.sql.SQLException
- if a database access occurs, the given parameter
is not a ResultSet
constant indicating holdability,
or the given holdability is not supportedgetHoldability()
,
ResultSet
public int getHoldability() throws java.sql.SQLException
ResultSet
objects
created using this Connection
object.getHoldability
in interface java.sql.Connection
ResultSet.HOLD_CURSORS_OVER_COMMIT
or
ResultSet.CLOSE_CURSORS_AT_COMMIT
java.sql.SQLException
- if a database access occurssetHoldability(int)
,
ResultSet
public java.sql.Savepoint setSavepoint() throws java.sql.SQLException
Savepoint
object that represents it.setSavepoint
in interface java.sql.Connection
Savepoint
objectjava.sql.SQLException
- if a database access error occurs
or this Connection
object is currently in
auto-commit modeSavepoint
public java.sql.Savepoint setSavepoint(java.lang.String name) throws java.sql.SQLException
Savepoint
object that represents it.setSavepoint
in interface java.sql.Connection
name
- a String
containing the name of the savepointSavepoint
objectjava.sql.SQLException
- if a database access error occurs
or this Connection
object is currently in
auto-commit modeSavepoint
public void rollback(java.sql.Savepoint savepoint) throws java.sql.SQLException
Savepoint
object
was set.
This method should be used only when auto-commit has been disabled.
rollback
in interface java.sql.Connection
savepoint
- the Savepoint
object to roll back tojava.sql.SQLException
- if a database access error occurs,
the Savepoint
object is no longer valid,
or this Connection
object is currently in
auto-commit modeSavepoint
,
rollback()
public void releaseSavepoint(java.sql.Savepoint savepoint) throws java.sql.SQLException
Savepoint
object from the current
transaction. Any reference to the savepoint after it have been removed
will cause an SQLException
to be thrown.releaseSavepoint
in interface java.sql.Connection
savepoint
- the Savepoint
object to be removedjava.sql.SQLException
- if a database access error occurs or
the given Savepoint
object is not a valid
savepoint in the current transactionpublic java.sql.Statement createStatement(int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws java.sql.SQLException
Statement
object that will generate
ResultSet
objects with the given type, concurrency,
and holdability.
This method is the same as the createStatement
method
above, but it allows the default result set
type, concurrency, and holdability to be overridden.createStatement
in interface java.sql.Connection
resultSetType
- one of the following ResultSet
constants:
ResultSet.TYPE_FORWARD_ONLY
,
ResultSet.TYPE_SCROLL_INSENSITIVE
, or
ResultSet.TYPE_SCROLL_SENSITIVE
resultSetConcurrency
- one of the following ResultSet
constants:
ResultSet.CONCUR_READ_ONLY
or
ResultSet.CONCUR_UPDATABLE
resultSetHoldability
- one of the following ResultSet
constants:
ResultSet.HOLD_CURSORS_OVER_COMMIT
or
ResultSet.CLOSE_CURSORS_AT_COMMIT
Statement
object that will generate
ResultSet
objects with the given type,
concurrency, and holdabilityjava.sql.SQLException
- if a database access error occurs
or the given parameters are not ResultSet
constants indicating type, concurrency, and holdabilityResultSet
public java.sql.PreparedStatement prepareStatement(java.lang.String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws java.sql.SQLException
PreparedStatement
object that will generate
ResultSet
objects with the given type, concurrency,
and holdability.
This method is the same as the prepareStatement
method
above, but it allows the default result set
type, concurrency, and holdability to be overridden.
prepareStatement
in interface java.sql.Connection
sql
- a String
object that is the SQL statement to
be sent to the database; may contain one or more ? IN
parametersresultSetType
- one of the following ResultSet
constants:
ResultSet.TYPE_FORWARD_ONLY
,
ResultSet.TYPE_SCROLL_INSENSITIVE
, or
ResultSet.TYPE_SCROLL_SENSITIVE
resultSetConcurrency
- one of the following ResultSet
constants:
ResultSet.CONCUR_READ_ONLY
or
ResultSet.CONCUR_UPDATABLE
resultSetHoldability
- one of the following ResultSet
constants:
ResultSet.HOLD_CURSORS_OVER_COMMIT
or
ResultSet.CLOSE_CURSORS_AT_COMMIT
PreparedStatement
object, containing the
pre-compiled SQL statement, that will generate
ResultSet
objects with the given type,
concurrency, and holdabilityjava.sql.SQLException
- if a database access error occurs
or the given parameters are not ResultSet
constants indicating type, concurrency, and holdabilityResultSet
public java.sql.CallableStatement prepareCall(java.lang.String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws java.sql.SQLException
CallableStatement
object that will generate
ResultSet
objects with the given type and concurrency.
This method is the same as the prepareCall
method
above, but it allows the default result set
type, result set concurrency type and holdability to be overridden.prepareCall
in interface java.sql.Connection
sql
- a String
object that is the SQL statement to
be sent to the database; may contain on or more ? parametersresultSetType
- one of the following ResultSet
constants:
ResultSet.TYPE_FORWARD_ONLY
,
ResultSet.TYPE_SCROLL_INSENSITIVE
, or
ResultSet.TYPE_SCROLL_SENSITIVE
resultSetConcurrency
- one of the following ResultSet
constants:
ResultSet.CONCUR_READ_ONLY
or
ResultSet.CONCUR_UPDATABLE
resultSetHoldability
- one of the following ResultSet
constants:
ResultSet.HOLD_CURSORS_OVER_COMMIT
or
ResultSet.CLOSE_CURSORS_AT_COMMIT
CallableStatement
object, containing the
pre-compiled SQL statement, that will generate
ResultSet
objects with the given type,
concurrency, and holdabilityjava.sql.SQLException
- if a database access error occurs
or the given parameters are not ResultSet
constants indicating type, concurrency, and holdabilityResultSet
public java.sql.PreparedStatement prepareStatement(java.lang.String sql, int autoGeneratedKeys) throws java.sql.SQLException
PreparedStatement
object 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 an INSERT
statement.
Note: This method is optimized for handling
parametric SQL statements that benefit from precompilation. If
the driver supports precompilation,
the method prepareStatement
will 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 the PreparedStatement
object is executed. This has no direct effect on users; however, it does
affect which methods throw certain SQLExceptions.
Result sets created using the returned PreparedStatement
object will by default be type TYPE_FORWARD_ONLY
and have a concurrency level of CONCUR_READ_ONLY
.
prepareStatement
in interface java.sql.Connection
sql
- an SQL statement that may contain one or more '?' IN
parameter placeholdersautoGeneratedKeys
- a flag indicating whether auto-generated keys
should be returned; one of
Statement.RETURN_GENERATED_KEYS
or
Statement.NO_GENERATED_KEYS
PreparedStatement
object, containing the
pre-compiled SQL statement, that will have the capability of
returning auto-generated keysjava.sql.SQLException
- if a database access error occurs
or the given parameter is not a Statement
constant indicating whether auto-generated keys should be
returnedpublic java.sql.PreparedStatement prepareStatement(java.lang.String sql, int[] columnIndexes) throws java.sql.SQLException
PreparedStatement
object 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. This array is ignored if the SQL
statement is not an INSERT
statement.
An SQL statement with or without IN parameters can be
pre-compiled and stored in a PreparedStatement
object. 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 prepareStatement
will 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 the PreparedStatement
object is executed. This has no direct effect on users; however, it does
affect which methods throw certain SQLExceptions.
Result sets created using the returned PreparedStatement
object will by default be type TYPE_FORWARD_ONLY
and have a concurrency level of CONCUR_READ_ONLY
.
prepareStatement
in interface java.sql.Connection
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 rowsPreparedStatement
object, containing the
pre-compiled statement, that is capable of returning the
auto-generated keys designated by the given array of column
indexesjava.sql.SQLException
- if a database access error occurspublic java.sql.PreparedStatement prepareStatement(java.lang.String sql, java.lang.String[] columnNames) throws java.sql.SQLException
PreparedStatement
object 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.
This array is ignored if the SQL
statement is not an INSERT
statement.
An SQL statement with or without IN parameters can be
pre-compiled and stored in a PreparedStatement
object. 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 prepareStatement
will 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 the PreparedStatement
object is executed. This has no direct effect on users; however, it does
affect which methods throw certain SQLExceptions.
Result sets created using the returned PreparedStatement
object will by default be type TYPE_FORWARD_ONLY
and have a concurrency level of CONCUR_READ_ONLY
.
prepareStatement
in interface java.sql.Connection
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 rowsPreparedStatement
object, containing the
pre-compiled statement, that is capable of returning the
auto-generated keys designated by the given array of column
namesjava.sql.SQLException
- if a database access error occurspublic java.sql.Clob createClob() throws java.sql.SQLException
Clob
interface.
The object returned initially contains no data. The
setAsciiStream
, setCharacterStream
and
setString
methods of the Clob
interface
may be used to add data to the Clob
.createClob
in interface java.sql.Connection
Clob
interfacejava.sql.SQLException
- if an object that implements the
Clob
interface can not be constructed, this method is
called on a closed connection or a database access error occurs.java.sql.SQLFeatureNotSupportedException
- if the JDBC driver does not
support this data typepublic java.sql.Blob createBlob() throws java.sql.SQLException
Blob
interface.
The object returned initially contains no data. The
setBinaryStream
and setBytes
methods of
the Blob
interface may be used to add data to the
Blob
.createBlob
in interface java.sql.Connection
Blob
interfacejava.sql.SQLException
- if an object that implements the
Blob
interface can not be constructed, this method is
called on a closed connection or a database access error occurs.java.sql.SQLFeatureNotSupportedException
- if the JDBC driver does
not support this data typepublic java.sql.NClob createNClob() throws java.sql.SQLException
NClob
interface. The object
returned initially contains no data. The setAsciiStream
,
setCharacterStream
and setString
methods of the NClob
interface may
be used to add data to the NClob
.createNClob
in interface java.sql.Connection
NClob
interfacejava.sql.SQLException
- if an object that implements the
NClob
interface can not be constructed, this method is
called on a closed connection or a database access error occurs.java.sql.SQLFeatureNotSupportedException
- if the JDBC driver does not support
this data typepublic java.sql.SQLXML createSQLXML() throws java.sql.SQLException
SQLXML
interface. The object
returned initially contains no data. The createXmlStreamWriter
object and
setString
method of the SQLXML
interface may be used to add data to the SQLXML
object.createSQLXML
in interface java.sql.Connection
SQLXML
interfacejava.sql.SQLException
- if an object that implements the SQLXML
interface can not
be constructed, this method is
called on a closed connection or a database access error occurs.java.sql.SQLFeatureNotSupportedException
- if the JDBC driver does not support
this data typepublic boolean isValid(int timeout) throws java.sql.SQLException
The query submitted by the driver to validate the connection shall be executed in the context of the current transaction.
isValid
in interface java.sql.Connection
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.
java.sql.SQLException
- if the value supplied for timeout
is less then 0DatabaseMetaData.getClientInfoProperties()
public void setClientInfo(java.lang.String name, java.lang.String value) throws java.sql.SQLClientInfoException
Applications may use the DatabaseMetaData.getClientInfoProperties
method 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 a SQLClientInfoException
, 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.
setClientInfo
in interface java.sql.Connection
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.
java.sql.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
public void setClientInfo(java.util.Properties properties) throws java.sql.SQLClientInfoException
Properties
object 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. See setClientInfo (String, String)
for
more information.
If an error occurs in setting any of the client info properties, a
SQLClientInfoException
is thrown. The SQLClientInfoException
contains 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.
setClientInfo
in interface java.sql.Connection
properties
- the list of client info properties to set
java.sql.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
setClientInfo(String, String)
public java.lang.String getClientInfo(java.lang.String name) throws java.sql.SQLException
Applications may use the DatabaseMetaData.getClientInfoProperties
method to determine the client info properties supported by the driver.
getClientInfo
in interface java.sql.Connection
name
- The name of the client info property to retrieve
java.sql.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
DatabaseMetaData.getClientInfoProperties()
public java.util.Properties getClientInfo() throws java.sql.SQLException
getClientInfo
in interface java.sql.Connection
Properties
object that contains the name and current value of
each of the client info properties supported by the driver.
java.sql.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
public java.sql.Array createArrayOf(java.lang.String typeName, java.lang.Object[] elements) throws java.sql.SQLException
Note: When createArrayOf
is used to create an array object
that maps to a primitive data type, then it is implementation-defined
whether the Array
object is an array of that primitive
data type or an array of Object
.
Note: The JDBC driver is responsible for mapping the elements
Object
array to the default JDBC SQL type defined in
java.sql.Types for the given class of Object
. 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 an SQLException
is
thrown or the driver supports the resulting conversion.
createArrayOf
in interface java.sql.Connection
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 by Array.getBaseTypeName
elements
- the elements that populate the returned objectjava.sql.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 connectionjava.sql.SQLFeatureNotSupportedException
- if the JDBC driver does not support this data typepublic java.sql.Struct createStruct(java.lang.String typeName, java.lang.Object[] attributes) throws java.sql.SQLException
createStruct
in interface java.sql.Connection
typeName
- the SQL type name of the SQL structured type that this Struct
object maps to. The typeName is the name of a user-defined type that
has been defined for this database. It is the value returned by
Struct.getSQLTypeName
.attributes
- the attributes that populate the returned objectjava.sql.SQLException
- if a database error occurs, the typeName is null or this method is called on a closed connectionjava.sql.SQLFeatureNotSupportedException
- if the JDBC driver does not support this data typepublic boolean isWrapperFor(java.lang.Class<?> pInterface) throws java.sql.SQLException
isWrapperFor
in interface java.sql.Wrapper
pInterface
- the interface to testjava.sql.SQLException
- if there's an error determining whether this is
a wrapper for the interfacepublic <T> T unwrap(java.lang.Class<T> pInterface) throws java.sql.SQLException
unwrap
in interface java.sql.Wrapper
pInterface
- the interface of the object to returnjava.sql.SQLException
- if no object is found that implements
the given interfacepublic void setSchema(java.lang.String schema) throws java.sql.SQLException
If the driver does not support schemas, it will silently ignore this request.
Calling setSchema
has no effect on previously created or prepared
Statement
objects. It is implementation defined whether a DBMS
prepare operation takes place immediately when the Connection
method prepareStatement
or prepareCall
is invoked.
For maximum portability, setSchema
should be called before a
Statement
is created or prepared.
setSchema
in interface java.sql.Connection
schema
- the name of a schema in which to workjava.sql.SQLException
- if a database access error occurs
or this method is called on a closed connectiongetSchema()
public java.lang.String getSchema() throws java.sql.SQLException
Connection
object's current schema name.getSchema
in interface java.sql.Connection
null
if there is nonejava.sql.SQLException
- if a database access error occurs
or this method is called on a closed connectionsetSchema(java.lang.String)
public void abort(java.util.concurrent.Executor executor) throws java.sql.SQLException
abort
results in:
SQLException
.
Calling abort
marks the connection closed and releases any
resources. Calling abort
on a closed connection is a
no-op.
It is possible that the aborting and releasing of the resources that are
held by the connection can take an extended period of time. When the
abort
method returns, the connection will have been marked as
closed and the Executor
that was passed as a parameter to abort
may still be executing tasks to release resources.
This method checks to see that there is an SQLPermission
object before allowing the method to proceed. If a
SecurityManager
exists and its
checkPermission
method denies calling abort
,
this method throws a
java.lang.SecurityException
.
abort
in interface java.sql.Connection
executor
- The Executor
implementation which will
be used by abort
.java.sql.SQLException
- if a database access error occurs or
the executor
is null
,java.lang.SecurityException
- if a security manager exists and its
checkPermission
method denies calling abort
SecurityManager.checkPermission(java.security.Permission)
,
Executor
public void setNetworkTimeout(java.util.concurrent.Executor executor, int milliseconds) throws java.sql.SQLException
Connection
or
objects created from the Connection
will wait for the database to reply to any one request. If any
request remains unanswered, the waiting method will
return with a SQLException
, and the Connection
or objects created from the Connection
will be marked as
closed. Any subsequent use of
the objects, with the exception of the close
,
isClosed
or Connection.isValid
methods, will result in a SQLException
.
Note: This method is intended to address a rare but serious
condition where network partitions can cause threads issuing JDBC calls
to hang uninterruptedly in socket reads, until the OS TCP-TIMEOUT
(typically 10 minutes). This method is related to the
abort()
method which provides an administrator
thread a means to free any such threads in cases where the
JDBC connection is accessible to the administrator thread.
The setNetworkTimeout
method will cover cases where
there is no administrator thread, or it has no access to the
connection. This method is severe in it's effects, and should be
given a high enough value so it is never triggered before any more
normal timeouts, such as transaction timeouts.
JDBC driver implementations may also choose to support the
setNetworkTimeout
method to impose a limit on database
response time, in environments where no network is present.
Drivers may internally implement some or all of their API calls with multiple internal driver-database transmissions, and it is left to the driver implementation to determine whether the limit will be applied always to the response to the API call, or to any single request made during the API call.
This method can be invoked more than once, such as to set a limit for an area of JDBC code, and to reset to the default on exit from this area. Invocation of this method has no impact on already outstanding requests.
The Statement.setQueryTimeout()
timeout value is independent of the
timeout value specified in setNetworkTimeout
. If the query timeout
expires before the network timeout then the
statement execution will be canceled. If the network is still
active the result will be that both the statement and connection
are still usable. However if the network timeout expires before
the query timeout or if the statement timeout fails due to network
problems, the connection will be marked as closed, any resources held by
the connection will be released and both the connection and
statement will be unusable.
When the driver determines that the setNetworkTimeout
timeout
value has expired, the JDBC driver marks the connection
closed and releases any resources held by the connection.
This method checks to see that there is an SQLPermission
object before allowing the method to proceed. If a
SecurityManager
exists and its
checkPermission
method denies calling
setNetworkTimeout
, this method throws a
java.lang.SecurityException
.
setNetworkTimeout
in interface java.sql.Connection
executor
- The Executor
implementation which will
be used by setNetworkTimeout
.milliseconds
- The time in milliseconds to wait for the database
operation
to complete. If the JDBC driver does not support milliseconds, the
JDBC driver will round the value up to the nearest second. If the
timeout period expires before the operation
completes, a SQLException will be thrown.
A value of 0 indicates that there is not timeout for database operations.java.sql.SQLException
- if a database access error occurs, this
method is called on a closed connection,
the executor
is null
,
or the value specified for seconds
is less than 0.java.lang.SecurityException
- if a security manager exists and its
checkPermission
method denies calling
setNetworkTimeout
.java.sql.SQLFeatureNotSupportedException
- if the JDBC driver does not support
this methodSecurityManager.checkPermission(java.security.Permission)
,
Statement.setQueryTimeout(int)
,
getNetworkTimeout()
,
abort(java.util.concurrent.Executor)
,
Executor
public int getNetworkTimeout() throws java.sql.SQLException
SQLException
is thrown.getNetworkTimeout
in interface java.sql.Connection
java.sql.SQLException
- if a database access error occurs or
this method is called on a closed Connection
java.sql.SQLFeatureNotSupportedException
- if the JDBC driver does not support
this methodsetNetworkTimeout(java.util.concurrent.Executor, int)