com.j256.ormlite.stmt
Class StatementBuilder<T,ID>

java.lang.Object
  extended by com.j256.ormlite.stmt.StatementBuilder<T,ID>
Direct Known Subclasses:
DeleteBuilder, QueryBuilder, UpdateBuilder

public abstract class StatementBuilder<T,ID>
extends Object

Assists in building of SQL statements for a particular table in a particular database.

Author:
graywatson

Nested Class Summary
static class StatementBuilder.StatementType
          Types of statements that we are building.
 
Field Summary
protected  DatabaseType databaseType
           
protected  Integer limit
           
protected  Integer offset
           
protected  TableInfo<T,ID> tableInfo
           
 
Constructor Summary
StatementBuilder(DatabaseType databaseType, TableInfo<T,ID> tableInfo, StatementBuilder.StatementType type)
          Provides statements for various SQL operations.
 
Method Summary
protected abstract  void appendStatementEnd(StringBuilder sb)
          Append the end of our statement string to the StringBuilder.
protected abstract  void appendStatementStart(StringBuilder sb, List<ArgumentHolder> argList)
          Append the start of our statement string to the StringBuilder.
protected  void appendStatementString(StringBuilder sb, List<ArgumentHolder> argList)
          Internal method to build a query while tracking various arguments.
protected  FieldType[] getResultFieldTypes()
          Get the result array from our statement after the appendStatementStart(StringBuilder, List) was called.
protected  MappedPreparedStmt<T,ID> prepareStatement()
          Prepare our statement for the subclasses.
 String prepareStatementString()
          Build and return a string version of the query.
 void setWhere(Where<T,ID> where)
          Set the Where object on the query.
protected  FieldType verifyColumnName(String columnName)
          Verify the columnName is valid and return its FieldType.
 Where<T,ID> where()
          Returns a Where object that should be used to add SQL where clauses to the statement.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

tableInfo

protected final TableInfo<T,ID> tableInfo

databaseType

protected final DatabaseType databaseType

limit

protected Integer limit

offset

protected Integer offset
Constructor Detail

StatementBuilder

public StatementBuilder(DatabaseType databaseType,
                        TableInfo<T,ID> tableInfo,
                        StatementBuilder.StatementType type)
Provides statements for various SQL operations.

Parameters:
databaseType - Database type.
tableInfo - Information about the table/class that is being handled.
type - Type of statement we are building.
Method Detail

where

public Where<T,ID> where()
Returns a Where object that should be used to add SQL where clauses to the statement. This will also reset the where object so you can use the same query builder with a different where statement.


setWhere

public void setWhere(Where<T,ID> where)
Set the Where object on the query. This allows someone to use the same Where object on multiple queries.


prepareStatement

protected MappedPreparedStmt<T,ID> prepareStatement()
                                             throws SQLException
Prepare our statement for the subclasses.

Throws:
SQLException

prepareStatementString

public String prepareStatementString()
                              throws SQLException
Build and return a string version of the query. If you change the where or make other calls you will need to re-call this method to re-prepare the query for execution.

This is mostly used for debugging or logging cases.

Throws:
SQLException

appendStatementString

protected void appendStatementString(StringBuilder sb,
                                     List<ArgumentHolder> argList)
                              throws SQLException
Internal method to build a query while tracking various arguments. Users should use the prepareStatementString() method instead.

This needs to be protected because of (WARNING: DO NOT MAKE A JAVADOC LINK) InternalQueryBuilder (WARNING: DO NOT MAKE A JAVADOC LINK).

Throws:
SQLException

appendStatementStart

protected abstract void appendStatementStart(StringBuilder sb,
                                             List<ArgumentHolder> argList)
                                      throws SQLException
Append the start of our statement string to the StringBuilder.

Throws:
SQLException

getResultFieldTypes

protected FieldType[] getResultFieldTypes()
                                   throws SQLException
Get the result array from our statement after the appendStatementStart(StringBuilder, List) was called. This will be null except for the QueryBuilder.

Throws:
SQLException

appendStatementEnd

protected abstract void appendStatementEnd(StringBuilder sb)
                                    throws SQLException
Append the end of our statement string to the StringBuilder.

Throws:
SQLException

verifyColumnName

protected FieldType verifyColumnName(String columnName)
Verify the columnName is valid and return its FieldType.

Throws:
IllegalArgumentException - if the column name is not valid.


Copyright © 2011. All Rights Reserved.