com.mckoi.database.jdbc
Class SQLQuery

java.lang.Object
  extended by com.mckoi.database.jdbc.SQLQuery

public final class SQLQuery
extends java.lang.Object

Represents an SQL Query to the database. This includes the query string itself plus any data types that are part of the query.

FUTURE ENHANCEMENTS: This could do some preliminary parsing of the query string for faster translation by the database.

Author:
Tobias Downer

Constructor Summary
SQLQuery(java.lang.String query)
          Constructs the query.
 
Method Summary
 void addVar(java.lang.Object ob)
          Adds a variable to the query.
 void clear()
          Clears all the parameters.
 SQLQuery copy()
          Creates an exact copy of this object.
static SQLQuery deserializeFromBlob(ByteLongObject ob)
          Deserializes an SQLQuery object from a ByteLongObject.
 boolean equals(java.lang.Object ob)
          Returns true if this query is equal to another.
 java.lang.String getQuery()
          Returns the query string.
 java.lang.Object[] getVars()
          Returns the array of all objects that are to be used as substitutions for '?' in the query.
 void prepare(boolean do_escape_processing)
          Prepares the query by parsing the query string and performing any updates that are required before being passed down to the lower layers of the database engine for processing.
static SQLQuery readFrom(java.io.DataInputStream in)
          Reads an SQLQuery object from the data input stream.
 ByteLongObject serializeToBlob()
          Serializes an SQLQuery object to a ByteLongObject.
 void setVar(int i, java.lang.Object ob)
          Sets a variable at the given index.
 java.lang.String toString()
          Outputs the query as text (for debugging)
 void writeTo(java.io.DataOutputStream out)
          Writes the SQL query to the data output stream.
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

SQLQuery

public SQLQuery(java.lang.String query)
Constructs the query.

Method Detail

addVar

public void addVar(java.lang.Object ob)
Adds a variable to the query. If the object is not a type that is a database 'primitive' type (BigDecimal, ByteLongObject, Boolean, Date, String) then it is serialized and the serialized form is wrapped in a ByteLongObject.


setVar

public void setVar(int i,
                   java.lang.Object ob)
Sets a variable at the given index. Grows if necessary. If the object is not a type that is a database 'primitive' type (BigDecimal, ByteLongObject, Boolean, Date, String) then it is serialized and the serialized form is wrapped in a ByteLongObject.


clear

public void clear()
Clears all the parameters.


getQuery

public java.lang.String getQuery()
Returns the query string.


getVars

public java.lang.Object[] getVars()
Returns the array of all objects that are to be used as substitutions for '?' in the query.

NOTE: Array returned references internal Object[] here so don't change!


prepare

public void prepare(boolean do_escape_processing)
             throws java.sql.SQLException
Prepares the query by parsing the query string and performing any updates that are required before being passed down to the lower layers of the database engine for processing. For example, JDBC escape code processing.

Throws:
java.sql.SQLException

equals

public boolean equals(java.lang.Object ob)
Returns true if this query is equal to another.

Overrides:
equals in class java.lang.Object

copy

public SQLQuery copy()
Creates an exact copy of this object.


toString

public java.lang.String toString()
Outputs the query as text (for debugging)

Overrides:
toString in class java.lang.Object

writeTo

public void writeTo(java.io.DataOutputStream out)
             throws java.io.IOException
Writes the SQL query to the data output stream.

Throws:
java.io.IOException

readFrom

public static SQLQuery readFrom(java.io.DataInputStream in)
                         throws java.io.IOException
Reads an SQLQuery object from the data input stream.

Throws:
java.io.IOException

serializeToBlob

public ByteLongObject serializeToBlob()
Serializes an SQLQuery object to a ByteLongObject.


deserializeFromBlob

public static SQLQuery deserializeFromBlob(ByteLongObject ob)
Deserializes an SQLQuery object from a ByteLongObject.