Package com.mckoi.database.jdbc
Class MPreparedStatement
- java.lang.Object
-
- com.mckoi.database.jdbc.MStatement
-
- com.mckoi.database.jdbc.MPreparedStatement
-
- All Implemented Interfaces:
java.lang.AutoCloseable,java.sql.PreparedStatement,java.sql.Statement,java.sql.Wrapper
class MPreparedStatement extends MStatement implements java.sql.PreparedStatement
An implementation of a JDBC prepared statement. Multi-threaded issue: This class is not designed to be multi-thread safe. A PreparedStatement should not be accessed by concurrent threads.
-
-
Field Summary
Fields Modifier and Type Field Description private SQLQuerystatementThe SQLQuery object constructed for this statement.private static booleanTIMESTAMP_VALUE_INCLUDES_NANOSTrue if the timestamp value includes nanoseconds, which is the case starting with Java 1.4.0
-
Constructor Summary
Constructors Constructor Description MPreparedStatement(MConnection connection, java.lang.String sql)Constructs the PreparedStatement.
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description voidaddBatch()(package private) java.lang.ObjectcastToMckoiObject(java.lang.Object ob)Converts a Java Object using the JDBC type conversion rules.voidclearParameters()voidclose()voidcloseOnCompletion()(package private) java.lang.ObjectconvertToType(java.lang.Object ob, int sqlType)Converts the given Object to the given SQL type object.booleanexecute()java.sql.ResultSetexecuteQuery()intexecuteUpdate()voidextSetDate(int parameterIndex, java.util.Date x)java.sql.ResultSetMetaDatagetMetaData()java.sql.ParameterMetaDatagetParameterMetaData()booleanisCloseOnCompletion()voidsetArray(int i, java.sql.Array x)voidsetAsciiStream(int parameterIndex, java.io.InputStream x, int length)voidsetBigDecimal(int parameterIndex, java.math.BigDecimal x)voidsetBinaryStream(int parameterIndex, java.io.InputStream x, int length)voidsetBlob(int i, java.sql.Blob x)voidsetBoolean(int parameterIndex, boolean x)voidsetByte(int parameterIndex, byte x)voidsetBytes(int parameterIndex, byte[] x)voidsetCharacterStream(int parameterIndex, java.io.Reader reader, int length)voidsetClob(int i, java.sql.Clob x)voidsetDate(int parameterIndex, java.sql.Date x)voidsetDate(int parameterIndex, java.sql.Date x, java.util.Calendar cal)voidsetDouble(int parameterIndex, double x)voidsetFloat(int parameterIndex, float x)voidsetInt(int parameterIndex, int x)voidsetLong(int parameterIndex, long x)voidsetNull(int parameterIndex, int sqlType)voidsetNull(int paramIndex, int sqlType, java.lang.String typeName)voidsetObject(int parameterIndex, java.lang.Object x)voidsetObject(int parameterIndex, java.lang.Object x, int targetSqlType)voidsetObject(int parameterIndex, java.lang.Object x, int targetSqlType, int scale)voidsetRef(int i, java.sql.Ref x)voidsetShort(int parameterIndex, short x)voidsetString(int parameterIndex, java.lang.String x)voidsetTime(int parameterIndex, java.sql.Time x)voidsetTime(int parameterIndex, java.sql.Time x, java.util.Calendar cal)voidsetTimestamp(int parameterIndex, java.sql.Timestamp x)voidsetTimestamp(int parameterIndex, java.sql.Timestamp x, java.util.Calendar cal)voidsetUnicodeStream(int parameterIndex, java.io.InputStream x, int length)Deprecated.voidsetURL(int parameterIndex, java.net.URL x)private voidsetVariableLengthStream(int parameterIndex, java.io.InputStream x, int length, byte type)Given an InputStream and a length of bytes to read from the stream, this method will insert a correct type of parameter into the statement to handle this size of object.java.lang.StringtoString()For diagnostics.-
Methods inherited from class com.mckoi.database.jdbc.MStatement
addBatch, addBatch, addSQLWarning, cancel, clearBatch, clearWarnings, createStreamableObject, execute, execute, execute, execute, executeBatch, executeQueries, executeQuery, executeQuery, executeUpdate, executeUpdate, executeUpdate, executeUpdate, finalize, getConnection, getFetchDirection, getFetchSize, getGeneratedKeys, getMaxFieldSize, getMaxRows, getMoreResults, getMoreResults, getQueryTimeout, getResultSet, getResultSetConcurrency, getResultSetHoldability, getResultSetType, getUpdateCount, getWarnings, internalResultSet, internalResultSetList, isClosed, isPoolable, isWrapperFor, setAsciiStream, setAsciiStream, setBinaryStream, setBinaryStream, setBlob, setBlob, setCharacterStream, setCharacterStream, setClob, setClob, setCursorName, setEscapeProcessing, setFetchDirection, setFetchSize, setMaxFieldSize, setMaxRows, setNCharacterStream, setNCharacterStream, setNClob, setNClob, setNClob, setNString, setPoolable, setQueryTimeout, setRowId, setSQLXML, unwrap
-
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface java.sql.PreparedStatement
executeLargeUpdate, setAsciiStream, setAsciiStream, setBinaryStream, setBinaryStream, setBlob, setBlob, setCharacterStream, setCharacterStream, setClob, setClob, setNCharacterStream, setNCharacterStream, setNClob, setNClob, setNClob, setNString, setObject, setObject, setRowId, setSQLXML
-
Methods inherited from interface java.sql.Statement
addBatch, cancel, clearBatch, clearWarnings, enquoteIdentifier, enquoteLiteral, enquoteNCharLiteral, execute, execute, execute, execute, executeBatch, executeLargeBatch, 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, isPoolable, isSimpleIdentifier, setCursorName, setEscapeProcessing, setFetchDirection, setFetchSize, setLargeMaxRows, setMaxFieldSize, setMaxRows, setPoolable, setQueryTimeout
-
-
-
-
Field Detail
-
statement
private SQLQuery statement
The SQLQuery object constructed for this statement.
-
TIMESTAMP_VALUE_INCLUDES_NANOS
private static final boolean TIMESTAMP_VALUE_INCLUDES_NANOS
True if the timestamp value includes nanoseconds, which is the case starting with Java 1.4.0
-
-
Constructor Detail
-
MPreparedStatement
MPreparedStatement(MConnection connection, java.lang.String sql)
Constructs the PreparedStatement.
-
-
Method Detail
-
convertToType
java.lang.Object convertToType(java.lang.Object ob, int sqlType) throws java.sql.SQLExceptionConverts the given Object to the given SQL type object.- Throws:
java.sql.SQLException
-
castToMckoiObject
java.lang.Object castToMckoiObject(java.lang.Object ob) throws java.sql.SQLExceptionConverts a Java Object using the JDBC type conversion rules. For example, java.lang.Double is converted to a NUMERIC type (com.mckoi.util.BigNumber).- Throws:
java.sql.SQLException
-
setVariableLengthStream
private void setVariableLengthStream(int parameterIndex, java.io.InputStream x, int length, byte type) throws java.io.IOExceptionGiven an InputStream and a length of bytes to read from the stream, this method will insert a correct type of parameter into the statement to handle this size of object. If the object is too large it will mark it as a streamable object.- Parameters:
parameterIndex- 1 for first parameter, 2 for second, etc.x- the input stream containing the binary data.length- the number of bytes to read.type- 2 = binary, 3 = 1 byte char, 4 = 2 byte unicode.- Throws:
java.io.IOException
-
close
public void close() throws java.sql.SQLException- Specified by:
closein interfacejava.lang.AutoCloseable- Specified by:
closein interfacejava.sql.Statement- Overrides:
closein classMStatement- Throws:
java.sql.SQLException
-
executeQuery
public java.sql.ResultSet executeQuery() throws java.sql.SQLException- Specified by:
executeQueryin interfacejava.sql.PreparedStatement- Throws:
java.sql.SQLException
-
executeUpdate
public int executeUpdate() throws java.sql.SQLException- Specified by:
executeUpdatein interfacejava.sql.PreparedStatement- Throws:
java.sql.SQLException
-
setNull
public void setNull(int parameterIndex, int sqlType) throws java.sql.SQLException- Specified by:
setNullin interfacejava.sql.PreparedStatement- Throws:
java.sql.SQLException
-
setBoolean
public void setBoolean(int parameterIndex, boolean x) throws java.sql.SQLException- Specified by:
setBooleanin interfacejava.sql.PreparedStatement- Throws:
java.sql.SQLException
-
setByte
public void setByte(int parameterIndex, byte x) throws java.sql.SQLException- Specified by:
setBytein interfacejava.sql.PreparedStatement- Throws:
java.sql.SQLException
-
setShort
public void setShort(int parameterIndex, short x) throws java.sql.SQLException- Specified by:
setShortin interfacejava.sql.PreparedStatement- Throws:
java.sql.SQLException
-
setInt
public void setInt(int parameterIndex, int x) throws java.sql.SQLException- Specified by:
setIntin interfacejava.sql.PreparedStatement- Throws:
java.sql.SQLException
-
setLong
public void setLong(int parameterIndex, long x) throws java.sql.SQLException- Specified by:
setLongin interfacejava.sql.PreparedStatement- Throws:
java.sql.SQLException
-
setFloat
public void setFloat(int parameterIndex, float x) throws java.sql.SQLException- Specified by:
setFloatin interfacejava.sql.PreparedStatement- Throws:
java.sql.SQLException
-
setDouble
public void setDouble(int parameterIndex, double x) throws java.sql.SQLException- Specified by:
setDoublein interfacejava.sql.PreparedStatement- Throws:
java.sql.SQLException
-
setBigDecimal
public void setBigDecimal(int parameterIndex, java.math.BigDecimal x) throws java.sql.SQLException- Specified by:
setBigDecimalin interfacejava.sql.PreparedStatement- Throws:
java.sql.SQLException
-
setString
public void setString(int parameterIndex, java.lang.String x) throws java.sql.SQLException- Specified by:
setStringin interfacejava.sql.PreparedStatement- Throws:
java.sql.SQLException
-
setBytes
public void setBytes(int parameterIndex, byte[] x) throws java.sql.SQLException- Specified by:
setBytesin interfacejava.sql.PreparedStatement- Throws:
java.sql.SQLException
-
extSetDate
public void extSetDate(int parameterIndex, java.util.Date x) throws java.sql.SQLException- Throws:
java.sql.SQLException
-
setDate
public void setDate(int parameterIndex, java.sql.Date x) throws java.sql.SQLException- Specified by:
setDatein interfacejava.sql.PreparedStatement- Throws:
java.sql.SQLException
-
setTime
public void setTime(int parameterIndex, java.sql.Time x) throws java.sql.SQLException- Specified by:
setTimein interfacejava.sql.PreparedStatement- Throws:
java.sql.SQLException
-
setTimestamp
public void setTimestamp(int parameterIndex, java.sql.Timestamp x) throws java.sql.SQLException- Specified by:
setTimestampin interfacejava.sql.PreparedStatement- Throws:
java.sql.SQLException
-
setAsciiStream
public void setAsciiStream(int parameterIndex, java.io.InputStream x, int length) throws java.sql.SQLException- Specified by:
setAsciiStreamin interfacejava.sql.PreparedStatement- Throws:
java.sql.SQLException
-
setUnicodeStream
public void setUnicodeStream(int parameterIndex, java.io.InputStream x, int length) throws java.sql.SQLExceptionDeprecated.- Specified by:
setUnicodeStreamin interfacejava.sql.PreparedStatement- Throws:
java.sql.SQLException
-
setBinaryStream
public void setBinaryStream(int parameterIndex, java.io.InputStream x, int length) throws java.sql.SQLException- Specified by:
setBinaryStreamin interfacejava.sql.PreparedStatement- Throws:
java.sql.SQLException
-
clearParameters
public void clearParameters() throws java.sql.SQLException- Specified by:
clearParametersin interfacejava.sql.PreparedStatement- Throws:
java.sql.SQLException
-
setObject
public void setObject(int parameterIndex, java.lang.Object x, int targetSqlType, int scale) throws java.sql.SQLException- Specified by:
setObjectin interfacejava.sql.PreparedStatement- Throws:
java.sql.SQLException
-
setObject
public void setObject(int parameterIndex, java.lang.Object x, int targetSqlType) throws java.sql.SQLException- Specified by:
setObjectin interfacejava.sql.PreparedStatement- Throws:
java.sql.SQLException
-
setObject
public void setObject(int parameterIndex, java.lang.Object x) throws java.sql.SQLException- Specified by:
setObjectin interfacejava.sql.PreparedStatement- Throws:
java.sql.SQLException
-
execute
public boolean execute() throws java.sql.SQLException- Specified by:
executein interfacejava.sql.PreparedStatement- Throws:
java.sql.SQLException
-
addBatch
public void addBatch() throws java.sql.SQLException- Specified by:
addBatchin interfacejava.sql.PreparedStatement- Throws:
java.sql.SQLException
-
setCharacterStream
public void setCharacterStream(int parameterIndex, java.io.Reader reader, int length) throws java.sql.SQLException- Specified by:
setCharacterStreamin interfacejava.sql.PreparedStatement- Throws:
java.sql.SQLException
-
setRef
public void setRef(int i, java.sql.Ref x) throws java.sql.SQLException- Specified by:
setRefin interfacejava.sql.PreparedStatement- Throws:
java.sql.SQLException
-
setBlob
public void setBlob(int i, java.sql.Blob x) throws java.sql.SQLException- Specified by:
setBlobin interfacejava.sql.PreparedStatement- Throws:
java.sql.SQLException
-
setClob
public void setClob(int i, java.sql.Clob x) throws java.sql.SQLException- Specified by:
setClobin interfacejava.sql.PreparedStatement- Throws:
java.sql.SQLException
-
setArray
public void setArray(int i, java.sql.Array x) throws java.sql.SQLException- Specified by:
setArrayin interfacejava.sql.PreparedStatement- Throws:
java.sql.SQLException
-
getMetaData
public java.sql.ResultSetMetaData getMetaData() throws java.sql.SQLException- Specified by:
getMetaDatain interfacejava.sql.PreparedStatement- Throws:
java.sql.SQLException
-
setDate
public void setDate(int parameterIndex, java.sql.Date x, java.util.Calendar cal) throws java.sql.SQLException- Specified by:
setDatein interfacejava.sql.PreparedStatement- Throws:
java.sql.SQLException
-
setTime
public void setTime(int parameterIndex, java.sql.Time x, java.util.Calendar cal) throws java.sql.SQLException- Specified by:
setTimein interfacejava.sql.PreparedStatement- Throws:
java.sql.SQLException
-
setTimestamp
public void setTimestamp(int parameterIndex, java.sql.Timestamp x, java.util.Calendar cal) throws java.sql.SQLException- Specified by:
setTimestampin interfacejava.sql.PreparedStatement- Throws:
java.sql.SQLException
-
setNull
public void setNull(int paramIndex, int sqlType, java.lang.String typeName) throws java.sql.SQLException- Specified by:
setNullin interfacejava.sql.PreparedStatement- Throws:
java.sql.SQLException
-
setURL
public void setURL(int parameterIndex, java.net.URL x) throws java.sql.SQLException- Specified by:
setURLin interfacejava.sql.PreparedStatement- Throws:
java.sql.SQLException
-
getParameterMetaData
public java.sql.ParameterMetaData getParameterMetaData() throws java.sql.SQLException- Specified by:
getParameterMetaDatain interfacejava.sql.PreparedStatement- Throws:
java.sql.SQLException
-
isCloseOnCompletion
public boolean isCloseOnCompletion() throws java.sql.SQLException- Specified by:
isCloseOnCompletionin interfacejava.sql.Statement- Overrides:
isCloseOnCompletionin classMStatement- Throws:
java.sql.SQLException
-
closeOnCompletion
public void closeOnCompletion() throws java.sql.SQLException- Specified by:
closeOnCompletionin interfacejava.sql.Statement- Overrides:
closeOnCompletionin classMStatement- Throws:
java.sql.SQLException
-
toString
public java.lang.String toString()
For diagnostics.- Overrides:
toStringin classjava.lang.Object
-
-