public class ServerSidePreparedStatement extends BasePrepareStatement implements java.lang.Cloneable
| Modifier and Type | Field and Description |
|---|---|
private java.util.Map<java.lang.Integer,ParameterHolder> |
currentParameterHolder |
private static Logger |
logger |
private MariaDbResultSetMetaData |
metadata |
private boolean |
mustExecuteOnMaster |
protected int |
parameterCount |
private MariaDbParameterMetaData |
parameterMetaData |
private java.util.List<ParameterHolder[]> |
queryParameters |
private ServerPrepareResult |
serverPrepareResult |
private java.lang.String |
sql |
autoGeneratedKeys, SPEC_ISO_ZONED_DATE_TIMEcanUseServerTimeout, closed, connection, exceptionFactory, executing, fetchSize, lock, maxRows, options, protocol, queryTimeout, results, resultSetConcurrency, resultSetScrollType| Constructor and Description |
|---|
ServerSidePreparedStatement(MariaDbConnection connection,
java.lang.String sql,
int resultSetScrollType,
int resultSetConcurrency,
int autoGeneratedKeys,
ExceptionFactory exceptionFactory)
Constructor for creating Server prepared statement.
|
| Modifier and Type | Method and Description |
|---|---|
void |
addBatch() |
void |
addBatch(java.lang.String sql)
Add batch.
|
void |
clearBatch()
Empties this
Statement object's current list of SQL send. |
void |
clearParameters() |
ServerSidePreparedStatement |
clone(MariaDbConnection connection)
Clone statement.
|
void |
close()
Releases this
Statement object's database and JDBC resources immediately instead
of waiting for this to happen when it is automatically closed. |
boolean |
execute() |
int[] |
executeBatch()
Submits a batch of send to the database for execution and if all send execute successfully,
returns an array of update counts.
|
private void |
executeBatchInternal(int queryParameterSize) |
protected boolean |
executeInternal(int fetchSize) |
long[] |
executeLargeBatch()
Execute batch, like executeBatch(), with returning results with long[].
|
java.sql.ResultSet |
executeQuery() |
private void |
executeQueryPrologue(ServerPrepareResult serverPrepareResult) |
int |
executeUpdate()
Executes the SQL statement in this
PreparedStatement object, which must be an SQL
Data Manipulation Language (DML) statement, such as INSERT, UPDATE or
DELETE; or an SQL statement that returns nothing, such as a DDL statement. |
java.sql.ResultSetMetaData |
getMetaData() |
protected int |
getParameterCount() |
java.sql.ParameterMetaData |
getParameterMetaData()
Retrieves the number, types and properties of this
PreparedStatement object's
parameters. |
long |
getServerThreadId()
Permit to retrieve current connection thread id, or -1 if unknown.
|
private void |
prepare(java.lang.String sql) |
private void |
setMetaFromResult() |
void |
setParameter(int parameterIndex,
ParameterHolder holder) |
java.lang.String |
toString()
Return sql String value.
|
protected void |
validParameters() |
executeLargeUpdate, setArray, setAsciiStream, setAsciiStream, setAsciiStream, setBigDecimal, setBinaryStream, setBinaryStream, setBinaryStream, setBlob, setBlob, setBlob, setBoolean, setByte, setBytes, setCharacterStream, setCharacterStream, setCharacterStream, setClob, setClob, setClob, setDate, setDate, setDouble, setFloat, setInt, setLong, setNCharacterStream, setNCharacterStream, setNClob, setNClob, setNClob, setNString, setNull, setNull, setNull, setObject, setObject, setObject, setObject, setObject, setRef, setRowId, setShort, setSQLXML, setString, setTime, setTime, setTimestamp, setTimestamp, setUnicodeStream, setURLcancel, checkClose, checkCloseOnCompletion, clearWarnings, closeOnCompletion, enquoteIdentifier, enquoteLiteral, enquoteNCharLiteral, execute, execute, execute, execute, executeBatchEpilogue, executeBatchExceptionEpilogue, executeEpilogue, executeExceptionEpilogue, executeLargeUpdate, executeLargeUpdate, executeLargeUpdate, executeLargeUpdate, executeQuery, executeQueryPrologue, executeUpdate, executeUpdate, executeUpdate, executeUpdate, getConnection, getFetchDirection, getFetchSize, getGeneratedKeys, getLargeMaxRows, getLargeUpdateCount, getMaxFieldSize, getMaxRows, getMoreResults, getMoreResults, getQueryTimeout, getResultSet, getResultSetConcurrency, getResultSetHoldability, getResultSetType, getUpdateCount, getWarnings, isClosed, isCloseOnCompletion, isPoolable, isSimpleIdentifier, isWrapperFor, setCursorName, setEscapeProcessing, setFetchDirection, setFetchSize, setLargeMaxRows, setLocalInfileInputStream, setMaxFieldSize, setMaxRows, setPoolable, setQueryTimeout, setTimerTask, skipMoreResults, testExecute, unwrapclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitcancel, clearWarnings, closeOnCompletion, execute, execute, execute, execute, executeLargeUpdate, executeLargeUpdate, executeLargeUpdate, executeLargeUpdate, executeQuery, executeUpdate, executeUpdate, executeUpdate, executeUpdate, getConnection, getFetchDirection, getFetchSize, getGeneratedKeys, getLargeMaxRows, getLargeUpdateCount, getMaxFieldSize, getMaxRows, getMoreResults, getMoreResults, getQueryTimeout, getResultSet, getResultSetConcurrency, getResultSetHoldability, getResultSetType, getUpdateCount, getWarnings, isClosed, isCloseOnCompletion, isPoolable, setCursorName, setEscapeProcessing, setFetchDirection, setFetchSize, setLargeMaxRows, setMaxFieldSize, setMaxRows, setPoolable, setQueryTimeoutprivate static final Logger logger
protected int parameterCount
private java.lang.String sql
private ServerPrepareResult serverPrepareResult
private MariaDbResultSetMetaData metadata
private MariaDbParameterMetaData parameterMetaData
private java.util.Map<java.lang.Integer,ParameterHolder> currentParameterHolder
private java.util.List<ParameterHolder[]> queryParameters
private boolean mustExecuteOnMaster
public ServerSidePreparedStatement(MariaDbConnection connection, java.lang.String sql, int resultSetScrollType, int resultSetConcurrency, int autoGeneratedKeys, ExceptionFactory exceptionFactory) throws java.sql.SQLException
connection - current connectionsql - Sql String to prepareresultSetScrollType - one of the following ResultSet constants:
ResultSet.TYPE_FORWARD_ONLY, ResultSet.TYPE_SCROLL_INSENSITIVE, or
ResultSet.TYPE_SCROLL_SENSITIVEresultSetConcurrency - a concurrency type; one of ResultSet.CONCUR_READ_ONLY
or ResultSet.CONCUR_UPDATABLEautoGeneratedKeys - a flag indicating whether auto-generated keys should be returned; one
of Statement.RETURN_GENERATED_KEYS or Statement.NO_GENERATED_KEYSexceptionFactory - Exception factoryjava.sql.SQLException - exceptionpublic ServerSidePreparedStatement clone(MariaDbConnection connection) throws java.lang.CloneNotSupportedException
clone in class BasePrepareStatementconnection - connectionjava.lang.CloneNotSupportedException - if any error occur.private void prepare(java.lang.String sql)
throws java.sql.SQLException
java.sql.SQLExceptionprivate void setMetaFromResult()
public void setParameter(int parameterIndex,
ParameterHolder holder)
throws java.sql.SQLException
setParameter in class BasePrepareStatementjava.sql.SQLExceptionpublic void addBatch()
throws java.sql.SQLException
addBatch in interface java.sql.PreparedStatementjava.sql.SQLExceptionpublic void addBatch(java.lang.String sql)
throws java.sql.SQLException
addBatch in interface java.sql.StatementaddBatch in class MariaDbStatementsql - typically this is a SQL INSERT or UPDATE statementjava.sql.SQLException - every time since that method is forbidden on prepareStatementMariaDbStatement.executeBatch(),
DatabaseMetaData.supportsBatchUpdates()public void clearBatch()
MariaDbStatementStatement object's current list of SQL send.clearBatch in interface java.sql.StatementclearBatch in class MariaDbStatementMariaDbStatement.addBatch(java.lang.String),
DatabaseMetaData.supportsBatchUpdates()public java.sql.ParameterMetaData getParameterMetaData()
throws java.sql.SQLException
BasePrepareStatementPreparedStatement object's
parameters.getParameterMetaData in interface java.sql.PreparedStatementgetParameterMetaData in class BasePrepareStatementParameterMetaData object that contains information about the number,
types and properties for each parameter marker of this PreparedStatement
objectjava.sql.SQLException - if a database access error occurs or this method is called on a closed
PreparedStatementParameterMetaDatapublic java.sql.ResultSetMetaData getMetaData()
throws java.sql.SQLException
getMetaData in interface java.sql.PreparedStatementjava.sql.SQLExceptionpublic int[] executeBatch()
throws java.sql.SQLException
int elements of the array that is returned
are ordered to correspond to the send in the batch, which are ordered according to the order in
which they were added to the batch. The elements in the array returned by the method
executeBatch may be one of the following:
SUCCESS_NO_INFO -- indicates that the command was processed
successfully but that the number of rows affected is unknown. If one of the send in a
batch update fails to execute properly, this method throws a BatchUpdateException
, and a JDBC driver may or may not continue to process the remaining send in the
batch. However, the driver's behavior must be consistent with a particular DBMS, either
always continuing to process send or never continuing to process send. If the driver
continues processing after a failure, the array returned by the method
BatchUpdateException.getUpdateCounts will contain as many elements as there are
send in the batch, and at least one of the elements will be the following:
EXECUTE_FAILED -- indicates that the command failed to execute
successfully and occurs only if a driver continues to process send after a command fails
The possible implementations and return values have been modified in the Java 2 SDK,
Standard Edition, version 1.3 to accommodate the option of continuing to proccess send in a
batch update after a BatchUpdateException object has been thrown.
executeBatch in interface java.sql.StatementexecuteBatch in class MariaDbStatementjava.sql.SQLException - if a database access error occurs, this method is called on a closed
Statement or the driver does not support batch statements. Throws BatchUpdateException (a subclass of SQLException) if one of the send sent to
the database fails to execute properly or attempts to return a result set.addBatch(),
DatabaseMetaData.supportsBatchUpdates()public long[] executeLargeBatch()
throws java.sql.SQLException
executeLargeBatch in interface java.sql.StatementexecuteLargeBatch in class MariaDbStatementjava.sql.SQLException - if a database error occur.private void executeBatchInternal(int queryParameterSize)
throws java.sql.SQLException
java.sql.SQLExceptionprivate void executeQueryPrologue(ServerPrepareResult serverPrepareResult) throws java.sql.SQLException
java.sql.SQLExceptionpublic java.sql.ResultSet executeQuery()
throws java.sql.SQLException
executeQuery in interface java.sql.PreparedStatementjava.sql.SQLExceptionpublic int executeUpdate()
throws java.sql.SQLException
PreparedStatement object, which must be an SQL
Data Manipulation Language (DML) statement, such as INSERT, UPDATE or
DELETE; or an SQL statement that returns nothing, such as a DDL statement.
Result-set are permitted for historical reason, even if spec indicate to throw exception.executeUpdate in interface java.sql.PreparedStatementjava.sql.SQLException - if a database access error occurs; this method is called on a closed
PreparedStatementpublic void clearParameters()
clearParameters in interface java.sql.PreparedStatementpublic boolean execute()
throws java.sql.SQLException
execute in interface java.sql.PreparedStatementjava.sql.SQLExceptionprotected void validParameters()
throws java.sql.SQLException
java.sql.SQLExceptionprotected boolean executeInternal(int fetchSize)
throws java.sql.SQLException
executeInternal in class BasePrepareStatementjava.sql.SQLExceptionpublic void close()
throws java.sql.SQLException
Statement object's database and JDBC resources immediately instead
of waiting for this to happen when it is automatically closed. It is generally good practice to
release resources as soon as you are finished with them to avoid tying up database resources.
Calling the method close on a Statement object that is already
closed has no effect.
Note:When a Statement object is closed, its current ResultSet
object, if one exists, is also closed.
close in interface java.lang.AutoCloseableclose in interface java.sql.Statementclose in class MariaDbStatementjava.sql.SQLException - if a database access error occursprotected int getParameterCount()
public java.lang.String toString()
toString in class java.lang.Objectpublic long getServerThreadId()