Package com.mckoi.database.jdbc

## Class SQLQuery

- java.lang.Object
- - 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

Constructors
`SQLQuery​(java.lang.String query)` Constructs the query.

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`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.