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 SQLQuery
statement
The SQLQuery object constructed for this statement.private static boolean
TIMESTAMP_VALUE_INCLUDES_NANOS
True 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 void
addBatch()
(package private) java.lang.Object
castToMckoiObject(java.lang.Object ob)
Converts a Java Object using the JDBC type conversion rules.void
clearParameters()
void
close()
void
closeOnCompletion()
(package private) java.lang.Object
convertToType(java.lang.Object ob, int sqlType)
Converts the given Object to the given SQL type object.boolean
execute()
java.sql.ResultSet
executeQuery()
int
executeUpdate()
void
extSetDate(int parameterIndex, java.util.Date x)
java.sql.ResultSetMetaData
getMetaData()
java.sql.ParameterMetaData
getParameterMetaData()
boolean
isCloseOnCompletion()
void
setArray(int i, java.sql.Array x)
void
setAsciiStream(int parameterIndex, java.io.InputStream x, int length)
void
setBigDecimal(int parameterIndex, java.math.BigDecimal x)
void
setBinaryStream(int parameterIndex, java.io.InputStream x, int length)
void
setBlob(int i, java.sql.Blob x)
void
setBoolean(int parameterIndex, boolean x)
void
setByte(int parameterIndex, byte x)
void
setBytes(int parameterIndex, byte[] x)
void
setCharacterStream(int parameterIndex, java.io.Reader reader, int length)
void
setClob(int i, java.sql.Clob x)
void
setDate(int parameterIndex, java.sql.Date x)
void
setDate(int parameterIndex, java.sql.Date x, java.util.Calendar cal)
void
setDouble(int parameterIndex, double x)
void
setFloat(int parameterIndex, float x)
void
setInt(int parameterIndex, int x)
void
setLong(int parameterIndex, long x)
void
setNull(int parameterIndex, int sqlType)
void
setNull(int paramIndex, int sqlType, java.lang.String typeName)
void
setObject(int parameterIndex, java.lang.Object x)
void
setObject(int parameterIndex, java.lang.Object x, int targetSqlType)
void
setObject(int parameterIndex, java.lang.Object x, int targetSqlType, int scale)
void
setRef(int i, java.sql.Ref x)
void
setShort(int parameterIndex, short x)
void
setString(int parameterIndex, java.lang.String x)
void
setTime(int parameterIndex, java.sql.Time x)
void
setTime(int parameterIndex, java.sql.Time x, java.util.Calendar cal)
void
setTimestamp(int parameterIndex, java.sql.Timestamp x)
void
setTimestamp(int parameterIndex, java.sql.Timestamp x, java.util.Calendar cal)
void
setUnicodeStream(int parameterIndex, java.io.InputStream x, int length)
Deprecated.void
setURL(int parameterIndex, java.net.URL x)
private void
setVariableLengthStream(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.String
toString()
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.SQLException
Converts 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.SQLException
Converts 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.IOException
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. 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:
close
in interfacejava.lang.AutoCloseable
- Specified by:
close
in interfacejava.sql.Statement
- Overrides:
close
in classMStatement
- Throws:
java.sql.SQLException
-
executeQuery
public java.sql.ResultSet executeQuery() throws java.sql.SQLException
- Specified by:
executeQuery
in interfacejava.sql.PreparedStatement
- Throws:
java.sql.SQLException
-
executeUpdate
public int executeUpdate() throws java.sql.SQLException
- Specified by:
executeUpdate
in interfacejava.sql.PreparedStatement
- Throws:
java.sql.SQLException
-
setNull
public void setNull(int parameterIndex, int sqlType) throws java.sql.SQLException
- Specified by:
setNull
in interfacejava.sql.PreparedStatement
- Throws:
java.sql.SQLException
-
setBoolean
public void setBoolean(int parameterIndex, boolean x) throws java.sql.SQLException
- Specified by:
setBoolean
in interfacejava.sql.PreparedStatement
- Throws:
java.sql.SQLException
-
setByte
public void setByte(int parameterIndex, byte x) throws java.sql.SQLException
- Specified by:
setByte
in interfacejava.sql.PreparedStatement
- Throws:
java.sql.SQLException
-
setShort
public void setShort(int parameterIndex, short x) throws java.sql.SQLException
- Specified by:
setShort
in interfacejava.sql.PreparedStatement
- Throws:
java.sql.SQLException
-
setInt
public void setInt(int parameterIndex, int x) throws java.sql.SQLException
- Specified by:
setInt
in interfacejava.sql.PreparedStatement
- Throws:
java.sql.SQLException
-
setLong
public void setLong(int parameterIndex, long x) throws java.sql.SQLException
- Specified by:
setLong
in interfacejava.sql.PreparedStatement
- Throws:
java.sql.SQLException
-
setFloat
public void setFloat(int parameterIndex, float x) throws java.sql.SQLException
- Specified by:
setFloat
in interfacejava.sql.PreparedStatement
- Throws:
java.sql.SQLException
-
setDouble
public void setDouble(int parameterIndex, double x) throws java.sql.SQLException
- Specified by:
setDouble
in interfacejava.sql.PreparedStatement
- Throws:
java.sql.SQLException
-
setBigDecimal
public void setBigDecimal(int parameterIndex, java.math.BigDecimal x) throws java.sql.SQLException
- Specified by:
setBigDecimal
in interfacejava.sql.PreparedStatement
- Throws:
java.sql.SQLException
-
setString
public void setString(int parameterIndex, java.lang.String x) throws java.sql.SQLException
- Specified by:
setString
in interfacejava.sql.PreparedStatement
- Throws:
java.sql.SQLException
-
setBytes
public void setBytes(int parameterIndex, byte[] x) throws java.sql.SQLException
- Specified by:
setBytes
in 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:
setDate
in interfacejava.sql.PreparedStatement
- Throws:
java.sql.SQLException
-
setTime
public void setTime(int parameterIndex, java.sql.Time x) throws java.sql.SQLException
- Specified by:
setTime
in interfacejava.sql.PreparedStatement
- Throws:
java.sql.SQLException
-
setTimestamp
public void setTimestamp(int parameterIndex, java.sql.Timestamp x) throws java.sql.SQLException
- Specified by:
setTimestamp
in 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:
setAsciiStream
in interfacejava.sql.PreparedStatement
- Throws:
java.sql.SQLException
-
setUnicodeStream
public void setUnicodeStream(int parameterIndex, java.io.InputStream x, int length) throws java.sql.SQLException
Deprecated.- Specified by:
setUnicodeStream
in 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:
setBinaryStream
in interfacejava.sql.PreparedStatement
- Throws:
java.sql.SQLException
-
clearParameters
public void clearParameters() throws java.sql.SQLException
- Specified by:
clearParameters
in 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:
setObject
in 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:
setObject
in interfacejava.sql.PreparedStatement
- Throws:
java.sql.SQLException
-
setObject
public void setObject(int parameterIndex, java.lang.Object x) throws java.sql.SQLException
- Specified by:
setObject
in interfacejava.sql.PreparedStatement
- Throws:
java.sql.SQLException
-
execute
public boolean execute() throws java.sql.SQLException
- Specified by:
execute
in interfacejava.sql.PreparedStatement
- Throws:
java.sql.SQLException
-
addBatch
public void addBatch() throws java.sql.SQLException
- Specified by:
addBatch
in 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:
setCharacterStream
in interfacejava.sql.PreparedStatement
- Throws:
java.sql.SQLException
-
setRef
public void setRef(int i, java.sql.Ref x) throws java.sql.SQLException
- Specified by:
setRef
in interfacejava.sql.PreparedStatement
- Throws:
java.sql.SQLException
-
setBlob
public void setBlob(int i, java.sql.Blob x) throws java.sql.SQLException
- Specified by:
setBlob
in interfacejava.sql.PreparedStatement
- Throws:
java.sql.SQLException
-
setClob
public void setClob(int i, java.sql.Clob x) throws java.sql.SQLException
- Specified by:
setClob
in interfacejava.sql.PreparedStatement
- Throws:
java.sql.SQLException
-
setArray
public void setArray(int i, java.sql.Array x) throws java.sql.SQLException
- Specified by:
setArray
in interfacejava.sql.PreparedStatement
- Throws:
java.sql.SQLException
-
getMetaData
public java.sql.ResultSetMetaData getMetaData() throws java.sql.SQLException
- Specified by:
getMetaData
in 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:
setDate
in 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:
setTime
in 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:
setTimestamp
in 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:
setNull
in interfacejava.sql.PreparedStatement
- Throws:
java.sql.SQLException
-
setURL
public void setURL(int parameterIndex, java.net.URL x) throws java.sql.SQLException
- Specified by:
setURL
in interfacejava.sql.PreparedStatement
- Throws:
java.sql.SQLException
-
getParameterMetaData
public java.sql.ParameterMetaData getParameterMetaData() throws java.sql.SQLException
- Specified by:
getParameterMetaData
in interfacejava.sql.PreparedStatement
- Throws:
java.sql.SQLException
-
isCloseOnCompletion
public boolean isCloseOnCompletion() throws java.sql.SQLException
- Specified by:
isCloseOnCompletion
in interfacejava.sql.Statement
- Overrides:
isCloseOnCompletion
in classMStatement
- Throws:
java.sql.SQLException
-
closeOnCompletion
public void closeOnCompletion() throws java.sql.SQLException
- Specified by:
closeOnCompletion
in interfacejava.sql.Statement
- Overrides:
closeOnCompletion
in classMStatement
- Throws:
java.sql.SQLException
-
toString
public java.lang.String toString()
For diagnostics.- Overrides:
toString
in classjava.lang.Object
-
-