com.github.drinkjava2.jdialects.hibernatesrc.pagination
Interface LimitHandler

All Known Implementing Classes:
AbstractLimitHandler, SQLServer2005LimitHandler, SQLServer2012LimitHandler

public interface LimitHandler

Contract defining dialect-specific LIMIT clause handling. Typically implementers might consider extending AbstractLimitHandler class.

Author:
Lukasz Antoniak (lukasz dot antoniak at gmail dot com), Yong Zhu(modify)

Method Summary
 int bindLimitParametersAtEndOfQuery(RowSelection selection, PreparedStatement statement, int index)
          Bind parameter values needed by the LIMIT clause afterQuery original SELECT statement.
 int bindLimitParametersAtStartOfQuery(RowSelection selection, PreparedStatement statement, int index)
          Bind parameter values needed by the LIMIT clause beforeQuery original SELECT statement.
 String processSql(String sql, RowSelection selection)
          Return processed SQL query.
 void setMaxRows(RowSelection selection, PreparedStatement statement)
          Use JDBC API to limit the number of rows returned by the SQL query.
 boolean supportsLimit()
          Does this handler support some form of limiting query results via a SQL clause?
 boolean supportsLimitOffset()
          Does this handler's LIMIT support (if any) additionally support specifying an offset?
 

Method Detail

supportsLimit

boolean supportsLimit()
Does this handler support some form of limiting query results via a SQL clause?

Returns:
True if this handler supports some form of LIMIT.

supportsLimitOffset

boolean supportsLimitOffset()
Does this handler's LIMIT support (if any) additionally support specifying an offset?

Returns:
True if the handler supports an offset within the limit support.

processSql

String processSql(String sql,
                  RowSelection selection)
Return processed SQL query.

Parameters:
sql - the SQL query to process.
selection - the selection criteria for rows.
Returns:
Query statement with LIMIT clause applied.

bindLimitParametersAtStartOfQuery

int bindLimitParametersAtStartOfQuery(RowSelection selection,
                                      PreparedStatement statement,
                                      int index)
                                      throws SQLException
Bind parameter values needed by the LIMIT clause beforeQuery original SELECT statement.

Parameters:
selection - the selection criteria for rows.
statement - Statement to which to bind limit parameter values.
index - Index from which to start binding.
Returns:
The number of parameter values bound.
Throws:
SQLException - Indicates problems binding parameter values.

bindLimitParametersAtEndOfQuery

int bindLimitParametersAtEndOfQuery(RowSelection selection,
                                    PreparedStatement statement,
                                    int index)
                                    throws SQLException
Bind parameter values needed by the LIMIT clause afterQuery original SELECT statement.

Parameters:
selection - the selection criteria for rows.
statement - Statement to which to bind limit parameter values.
index - Index from which to start binding.
Returns:
The number of parameter values bound.
Throws:
SQLException - Indicates problems binding parameter values.

setMaxRows

void setMaxRows(RowSelection selection,
                PreparedStatement statement)
                throws SQLException
Use JDBC API to limit the number of rows returned by the SQL query. Typically handlers that do not support LIMIT clause should implement this method.

Parameters:
selection - the selection criteria for rows.
statement - Statement which number of returned rows shall be limited.
Throws:
SQLException - Indicates problems while limiting maximum rows returned.


Copyright © 2018. All rights reserved.