com.vaadin.data.util.sqlcontainer.query.generator
Class DefaultSQLGenerator

java.lang.Object
  extended by com.vaadin.data.util.sqlcontainer.query.generator.DefaultSQLGenerator
All Implemented Interfaces:
SQLGenerator, Serializable
Direct Known Subclasses:
MSSQLGenerator, OracleGenerator

public class DefaultSQLGenerator
extends Object
implements SQLGenerator

Generates generic SQL that is supported by HSQLDB, MySQL and PostgreSQL.

Author:
Jonatan Kronqvist / Vaadin Ltd
See Also:
Serialized Form

Constructor Summary
DefaultSQLGenerator()
           
DefaultSQLGenerator(String quoteStart, String quoteEnd)
          Construct a DefaultSQLGenerator with the specified identifiers for start and end of quoted strings.
 
Method Summary
protected  Map<String,Object> generateColumnToValueMap(RowItem item)
           
 StatementHelper generateDeleteQuery(String tableName, List<String> primaryKeyColumns, String versionColumn, RowItem item)
          Generates a DELETE query for deleting data related to the given RowItem from the database.
 StatementHelper generateInsertQuery(String tableName, RowItem item)
          Generates an INSERT query for inserting a new row with the provided values.
protected  StringBuffer generateLimits(StringBuffer sb, int offset, int pagelength)
          Generates the LIMIT and OFFSET clause.
protected  StringBuffer generateOrderBy(StringBuffer sb, OrderBy o, boolean firstOrderBy)
          Generates sorting rules as an ORDER BY -clause
protected  Map<String,Object> generateRowIdentifiers(RowItem item)
           
 StatementHelper generateSelectQuery(String tableName, List<Container.Filter> filters, List<OrderBy> orderBys, int offset, int pagelength, String toSelect)
          Generates a SELECT query with the provided parameters.
 StatementHelper generateUpdateQuery(String tableName, RowItem item)
          Generates an UPDATE query with the provided parameters.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DefaultSQLGenerator

public DefaultSQLGenerator()

DefaultSQLGenerator

public DefaultSQLGenerator(String quoteStart,
                           String quoteEnd)
Construct a DefaultSQLGenerator with the specified identifiers for start and end of quoted strings. The identifiers may be different depending on the database engine and it's settings.

Parameters:
quoteStart - the identifier (character) denoting the start of a quoted string
quoteEnd - the identifier (character) denoting the end of a quoted string
Method Detail

generateSelectQuery

public StatementHelper generateSelectQuery(String tableName,
                                           List<Container.Filter> filters,
                                           List<OrderBy> orderBys,
                                           int offset,
                                           int pagelength,
                                           String toSelect)
Description copied from interface: SQLGenerator
Generates a SELECT query with the provided parameters. Uses default filtering mode (INCLUSIVE).

Specified by:
generateSelectQuery in interface SQLGenerator
Parameters:
tableName - Name of the table queried
filters - The filters, converted into a WHERE clause
orderBys - The the ordering conditions, converted into an ORDER BY clause
offset - The offset of the first row to be included
pagelength - The number of rows to be returned when the query executes
toSelect - String containing what to select, e.g. "*", "COUNT(*)"
Returns:
StatementHelper instance containing the query string for a PreparedStatement and the values required for the parameters

generateUpdateQuery

public StatementHelper generateUpdateQuery(String tableName,
                                           RowItem item)
Description copied from interface: SQLGenerator
Generates an UPDATE query with the provided parameters.

Specified by:
generateUpdateQuery in interface SQLGenerator
Parameters:
tableName - Name of the table queried
item - RowItem containing the updated values update.
Returns:
StatementHelper instance containing the query string for a PreparedStatement and the values required for the parameters

generateInsertQuery

public StatementHelper generateInsertQuery(String tableName,
                                           RowItem item)
Description copied from interface: SQLGenerator
Generates an INSERT query for inserting a new row with the provided values.

Specified by:
generateInsertQuery in interface SQLGenerator
Parameters:
tableName - Name of the table queried
item - New RowItem to be inserted into the database.
Returns:
StatementHelper instance containing the query string for a PreparedStatement and the values required for the parameters

generateDeleteQuery

public StatementHelper generateDeleteQuery(String tableName,
                                           List<String> primaryKeyColumns,
                                           String versionColumn,
                                           RowItem item)
Description copied from interface: SQLGenerator
Generates a DELETE query for deleting data related to the given RowItem from the database.

Specified by:
generateDeleteQuery in interface SQLGenerator
Parameters:
tableName - Name of the table queried
primaryKeyColumns - the names of the columns holding the primary key. Usually just one column, but might be several.
versionColumn - the column containing the version number of the row, null if versioning (optimistic locking) not enabled.
item - Item to be deleted from the database
Returns:
StatementHelper instance containing the query string for a PreparedStatement and the values required for the parameters

generateOrderBy

protected StringBuffer generateOrderBy(StringBuffer sb,
                                       OrderBy o,
                                       boolean firstOrderBy)
Generates sorting rules as an ORDER BY -clause

Parameters:
sb - StringBuffer to which the clause is appended.
o - OrderBy object to be added into the sb.
firstOrderBy - If true, this is the first OrderBy.
Returns:

generateLimits

protected StringBuffer generateLimits(StringBuffer sb,
                                      int offset,
                                      int pagelength)
Generates the LIMIT and OFFSET clause.

Parameters:
sb - StringBuffer to which the clause is appended.
offset - Value for offset.
pagelength - Value for pagelength.
Returns:
StringBuffer with LIMIT and OFFSET clause added.

generateColumnToValueMap

protected Map<String,Object> generateColumnToValueMap(RowItem item)

generateRowIdentifiers

protected Map<String,Object> generateRowIdentifiers(RowItem item)


Copyright © 2000-2011 Vaadin Ltd. All Rights Reserved.