org.springframework.batch.item.database.support
Class SqlPagingQueryUtils

java.lang.Object
  extended by org.springframework.batch.item.database.support.SqlPagingQueryUtils

public class SqlPagingQueryUtils
extends Object

Utility class that generates the actual SQL statements used by query providers.

Since:
2.0
Author:
Thomas Risberg, Dave Syer, Michael Minella

Constructor Summary
SqlPagingQueryUtils()
           
 
Method Summary
static String buildSortClause(AbstractSqlPagingQueryProvider provider)
          Generates ORDER BY attributes based on the sort keys.
static void buildSortConditions(AbstractSqlPagingQueryProvider provider, StringBuilder sql)
          Appends the where conditions required to query for the subsequent pages.
static String generateGroupedTopSqlQuery(AbstractSqlPagingQueryProvider provider, boolean remainingPageQuery, String topClause)
          Generate SQL query string using a TOP clause
static String generateLimitGroupedSqlQuery(AbstractSqlPagingQueryProvider provider, boolean remainingPageQuery, String limitClause)
          Generate SQL query string using a LIMIT clause
static String generateLimitJumpToQuery(AbstractSqlPagingQueryProvider provider, String limitClause)
          Generate SQL query string using a LIMIT clause
static String generateLimitSqlQuery(AbstractSqlPagingQueryProvider provider, boolean remainingPageQuery, String limitClause)
          Generate SQL query string using a LIMIT clause
static String generateRowNumSqlQuery(AbstractSqlPagingQueryProvider provider, boolean remainingPageQuery, String rowNumClause)
          Generate SQL query string using a ROW_NUM condition
static String generateRowNumSqlQuery(AbstractSqlPagingQueryProvider provider, String selectClause, boolean remainingPageQuery, String rowNumClause)
          Generate SQL query string using a ROW_NUM condition
static String generateRowNumSqlQueryWithNesting(AbstractSqlPagingQueryProvider provider, String selectClause, boolean remainingPageQuery, String rowNumClause)
           
static String generateRowNumSqlQueryWithNesting(AbstractSqlPagingQueryProvider provider, String innerSelectClause, String outerSelectClause, boolean remainingPageQuery, String rowNumClause)
           
static String generateTopJumpToQuery(AbstractSqlPagingQueryProvider provider, String topClause)
          Generate SQL query string using a TOP clause
static String generateTopSqlQuery(AbstractSqlPagingQueryProvider provider, boolean remainingPageQuery, String topClause)
          Generate SQL query string using a TOP clause
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SqlPagingQueryUtils

public SqlPagingQueryUtils()
Method Detail

generateLimitSqlQuery

public static String generateLimitSqlQuery(AbstractSqlPagingQueryProvider provider,
                                           boolean remainingPageQuery,
                                           String limitClause)
Generate SQL query string using a LIMIT clause

Parameters:
provider - AbstractSqlPagingQueryProvider providing the implementation specifics
remainingPageQuery - is this query for the ramining pages (true) as opposed to the first page (false)
limitClause - the implementation specific limit clause to be used
Returns:
the generated query

generateLimitGroupedSqlQuery

public static String generateLimitGroupedSqlQuery(AbstractSqlPagingQueryProvider provider,
                                                  boolean remainingPageQuery,
                                                  String limitClause)
Generate SQL query string using a LIMIT clause

Parameters:
provider - AbstractSqlPagingQueryProvider providing the implementation specifics
remainingPageQuery - is this query for the ramining pages (true) as opposed to the first page (false)
limitClause - the implementation specific limit clause to be used
Returns:
the generated query

generateTopSqlQuery

public static String generateTopSqlQuery(AbstractSqlPagingQueryProvider provider,
                                         boolean remainingPageQuery,
                                         String topClause)
Generate SQL query string using a TOP clause

Parameters:
provider - AbstractSqlPagingQueryProvider providing the implementation specifics
remainingPageQuery - is this query for the ramining pages (true) as opposed to the first page (false)
topClause - the implementation specific top clause to be used
Returns:
the generated query

generateGroupedTopSqlQuery

public static String generateGroupedTopSqlQuery(AbstractSqlPagingQueryProvider provider,
                                                boolean remainingPageQuery,
                                                String topClause)
Generate SQL query string using a TOP clause

Parameters:
provider - AbstractSqlPagingQueryProvider providing the implementation specifics
remainingPageQuery - is this query for the ramining pages (true) as opposed to the first page (false)
topClause - the implementation specific top clause to be used
Returns:
the generated query

generateRowNumSqlQuery

public static String generateRowNumSqlQuery(AbstractSqlPagingQueryProvider provider,
                                            boolean remainingPageQuery,
                                            String rowNumClause)
Generate SQL query string using a ROW_NUM condition

Parameters:
provider - AbstractSqlPagingQueryProvider providing the implementation specifics
remainingPageQuery - is this query for the remaining pages (true) as opposed to the first page (false)
rowNumClause - the implementation specific row num clause to be used
Returns:
the generated query

generateRowNumSqlQuery

public static String generateRowNumSqlQuery(AbstractSqlPagingQueryProvider provider,
                                            String selectClause,
                                            boolean remainingPageQuery,
                                            String rowNumClause)
Generate SQL query string using a ROW_NUM condition

Parameters:
provider - AbstractSqlPagingQueryProvider providing the implementation specifics
remainingPageQuery - is this query for the remaining pages (true) as opposed to the first page (false)
rowNumClause - the implementation specific row num clause to be used
Returns:
the generated query

generateRowNumSqlQueryWithNesting

public static String generateRowNumSqlQueryWithNesting(AbstractSqlPagingQueryProvider provider,
                                                       String selectClause,
                                                       boolean remainingPageQuery,
                                                       String rowNumClause)

generateRowNumSqlQueryWithNesting

public static String generateRowNumSqlQueryWithNesting(AbstractSqlPagingQueryProvider provider,
                                                       String innerSelectClause,
                                                       String outerSelectClause,
                                                       boolean remainingPageQuery,
                                                       String rowNumClause)

generateLimitJumpToQuery

public static String generateLimitJumpToQuery(AbstractSqlPagingQueryProvider provider,
                                              String limitClause)
Generate SQL query string using a LIMIT clause

Parameters:
provider - AbstractSqlPagingQueryProvider providing the implementation specifics
limitClause - the implementation specific top clause to be used
Returns:
the generated query

generateTopJumpToQuery

public static String generateTopJumpToQuery(AbstractSqlPagingQueryProvider provider,
                                            String topClause)
Generate SQL query string using a TOP clause

Parameters:
provider - AbstractSqlPagingQueryProvider providing the implementation specifics
topClause - the implementation specific top clause to be used
Returns:
the generated query

buildSortClause

public static String buildSortClause(AbstractSqlPagingQueryProvider provider)
Generates ORDER BY attributes based on the sort keys.

Parameters:
provider -
Returns:
a String that can be appended to an ORDER BY clause.

buildSortConditions

public static void buildSortConditions(AbstractSqlPagingQueryProvider provider,
                                       StringBuilder sql)
Appends the where conditions required to query for the subsequent pages.

Parameters:
provider -
sql -


Copyright © 2013 SpringSource. All Rights Reserved.