org.mariadb.jdbc
Class MariaDbPreparedStatementServer

java.lang.Object
  extended by org.mariadb.jdbc.MariaDbStatement
      extended by org.mariadb.jdbc.BasePrepareStatement
          extended by org.mariadb.jdbc.MariaDbPreparedStatementServer
All Implemented Interfaces:
Cloneable, PreparedStatement, Statement, Wrapper
Direct Known Subclasses:
CallableProcedureStatement

public class MariaDbPreparedStatementServer
extends BasePrepareStatement
implements Cloneable


Field Summary
 
Fields inherited from class org.mariadb.jdbc.BasePrepareStatement
hasLongData, useFractionalSeconds
 
Fields inherited from class org.mariadb.jdbc.MariaDbStatement
batchQueries, canUseServerTimeout, closed, connection, fetchSize, lock, maxRows, mustCloseOnCompletion, options, protocol, queryTimeout, results, resultSetScrollType, timerTaskFuture, timerTaskRunnable, warningsCleared
 
Fields inherited from interface java.sql.Statement
CLOSE_ALL_RESULTS, CLOSE_CURRENT_RESULT, EXECUTE_FAILED, KEEP_CURRENT_RESULT, NO_GENERATED_KEYS, RETURN_GENERATED_KEYS, SUCCESS_NO_INFO
 
Constructor Summary
MariaDbPreparedStatementServer(MariaDbConnection connection, String sql, int resultSetScrollType, boolean forcePrepare)
          Constructor for creating Server prepared statement.
 
Method Summary
 void addBatch()
           
 void addBatch(String sql)
          Add batch.
 void clearBatch()
          Empties this Statement object's current list of SQL send.
 void clearParameters()
           
 MariaDbPreparedStatementServer 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.
protected  boolean executeInternal(int fetchSize)
           
 long[] executeLargeBatch()
          Execute batch, like executeBatch(), with returning results with long[].
 ResultSet executeQuery()
           
 int executeUpdate()
           
 ResultSetMetaData getMetaData()
           
protected  int getParameterCount()
           
 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.
protected  void setParameter(int parameterIndex, ParameterHolder holder)
           
 String toString()
          Return sql String value.
protected  void validParameters()
           
 
Methods inherited from class org.mariadb.jdbc.BasePrepareStatement
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, setInternalObject, setLong, setNCharacterStream, setNCharacterStream, setNClob, setNClob, setNClob, setNString, setNull, setNull, setNull, setObject, setObject, setObject, setRef, setRowId, setShort, setSQLXML, setString, setTime, setTime, setTimestamp, setTimestamp, setUnicodeStream, setURL
 
Methods inherited from class org.mariadb.jdbc.MariaDbStatement
cancel, checkClose, checkCloseOnCompletion, clearWarnings, closeOnCompletion, execute, execute, execute, execute, executeBatchEpilogue, executeBatchExceptionEpilogue, executeEpilogue, executeExceptionEpilogue, executeInternal, executeLargeUpdate, executeLargeUpdate, executeLargeUpdate, executeLargeUpdate, executeQuery, executeQueryPrologue, executeUpdate, executeUpdate, executeUpdate, executeUpdate, getConnection, getFetchDirection, getFetchSize, getGeneratedKeys, getLargeMaxRows, getLargeUpdateCount, getMaxFieldSize, getMaxRows, getMoreResults, getMoreResults, getProtocol, getQueryTimeout, getResultSet, getResultSetConcurrency, getResultSetHoldability, getResultSetType, getUpdateCount, getWarnings, handleFailoverAndTimeout, internalBatchExecution, isClosed, isCloseOnCompletion, isPoolable, isWrapperFor, setCursorName, setEscapeProcessing, setFetchDirection, setFetchSize, setLargeMaxRows, setLocalInfileInputStream, setMaxFieldSize, setMaxRows, setPoolable, setQueryTimeout, setTimerTask, skipMoreResults, stopTimeoutTask, testExecute, unloadDriver, unwrap
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.sql.Statement
cancel, clearWarnings, execute, execute, execute, execute, executeQuery, executeUpdate, executeUpdate, executeUpdate, executeUpdate, getConnection, getFetchDirection, getFetchSize, getGeneratedKeys, getMaxFieldSize, getMaxRows, getMoreResults, getMoreResults, getQueryTimeout, getResultSet, getResultSetConcurrency, getResultSetHoldability, getResultSetType, getUpdateCount, getWarnings, isClosed, isPoolable, setCursorName, setEscapeProcessing, setFetchDirection, setFetchSize, setMaxFieldSize, setMaxRows, setPoolable, setQueryTimeout
 
Methods inherited from interface java.sql.Wrapper
isWrapperFor, unwrap
 

Constructor Detail

MariaDbPreparedStatementServer

public MariaDbPreparedStatementServer(MariaDbConnection connection,
                                      String sql,
                                      int resultSetScrollType,
                                      boolean forcePrepare)
                               throws SQLException
Constructor for creating Server prepared statement.

Parameters:
connection - current connection
sql - Sql String to prepare
resultSetScrollType - one of the following ResultSet constants: ResultSet.TYPE_FORWARD_ONLY, ResultSet.TYPE_SCROLL_INSENSITIVE, or ResultSet.TYPE_SCROLL_SENSITIVE
forcePrepare - force immediate prepare
Throws:
SQLException - exception
Method Detail

clone

public MariaDbPreparedStatementServer clone(MariaDbConnection connection)
                                     throws CloneNotSupportedException
Clone statement.

Overrides:
clone in class BasePrepareStatement
Parameters:
connection - connection
Returns:
Clone statement.
Throws:
CloneNotSupportedException - if any error occur.

setParameter

protected void setParameter(int parameterIndex,
                            ParameterHolder holder)
                     throws SQLException
Specified by:
setParameter in class BasePrepareStatement
Throws:
SQLException

addBatch

public void addBatch()
              throws SQLException
Specified by:
addBatch in interface PreparedStatement
Throws:
SQLException

addBatch

public void addBatch(String sql)
              throws SQLException
Add batch.

Specified by:
addBatch in interface Statement
Overrides:
addBatch in class MariaDbStatement
Parameters:
sql - typically this is a SQL INSERT or UPDATE statement
Throws:
SQLException - every time since that method is forbidden on prepareStatement
See Also:
MariaDbStatement.executeBatch(), DatabaseMetaData.supportsBatchUpdates()

clearBatch

public void clearBatch()
Description copied from class: MariaDbStatement
Empties this Statement object's current list of SQL send.

Specified by:
clearBatch in interface Statement
Overrides:
clearBatch in class MariaDbStatement
See Also:
MariaDbStatement.addBatch(java.lang.String), DatabaseMetaData.supportsBatchUpdates()

getParameterMetaData

public ParameterMetaData getParameterMetaData()
                                       throws SQLException
Description copied from class: BasePrepareStatement
Retrieves the number, types and properties of this PreparedStatement object's parameters.

Specified by:
getParameterMetaData in interface PreparedStatement
Specified by:
getParameterMetaData in class BasePrepareStatement
Returns:
a ParameterMetaData object that contains information about the number, types and properties for each parameter marker of this PreparedStatement object
Throws:
SQLException - if a database access error occurs or this method is called on a closed PreparedStatement
See Also:
ParameterMetaData

getMetaData

public ResultSetMetaData getMetaData()
                              throws SQLException
Specified by:
getMetaData in interface PreparedStatement
Throws:
SQLException

executeBatch

public int[] executeBatch()
                   throws SQLException

Submits a batch of send to the database for execution and if all send execute successfully, returns an array of update counts. The 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:

  1. A number greater than or equal to zero -- indicates that the command was processed successfully and is an update count giving the number of rows in the database that were affected by the command's execution
  2. A value of 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:
  3. A value of 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.

Specified by:
executeBatch in interface Statement
Overrides:
executeBatch in class MariaDbStatement
Returns:
an array of update counts containing one element for each command in the batch. The elements of the array are ordered according to the order in which send were added to the batch.
Throws:
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.
Since:
1.3
See Also:
addBatch(), DatabaseMetaData.supportsBatchUpdates()

executeLargeBatch

public long[] executeLargeBatch()
                         throws SQLException
Execute batch, like executeBatch(), with returning results with long[]. For when row count may exceed Integer.MAX_VALUE.

Returns:
an array of update counts (one element for each command in the batch)
Throws:
SQLException - if a database error occur.

executeQuery

public ResultSet executeQuery()
                       throws SQLException
Specified by:
executeQuery in interface PreparedStatement
Throws:
SQLException

executeUpdate

public int executeUpdate()
                  throws SQLException
Specified by:
executeUpdate in interface PreparedStatement
Throws:
SQLException

clearParameters

public void clearParameters()
                     throws SQLException
Specified by:
clearParameters in interface PreparedStatement
Throws:
SQLException

execute

public boolean execute()
                throws SQLException
Specified by:
execute in interface PreparedStatement
Throws:
SQLException

validParameters

protected void validParameters()
                        throws SQLException
Throws:
SQLException

executeInternal

protected boolean executeInternal(int fetchSize)
                           throws SQLException
Specified by:
executeInternal in class BasePrepareStatement
Throws:
SQLException

close

public void close()
           throws SQLException

Releases this 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.

Specified by:
close in interface Statement
Overrides:
close in class MariaDbStatement
Throws:
SQLException - if a database access error occurs

getParameterCount

protected int getParameterCount()

toString

public String toString()
Return sql String value.

Overrides:
toString in class Object
Returns:
String representation

getServerThreadId

public long getServerThreadId()
Permit to retrieve current connection thread id, or -1 if unknown.

Overrides:
getServerThreadId in class MariaDbStatement
Returns:
current connection thread id.


Copyright © 2017. All rights reserved.