org.apache.ignite.cache.store.jdbc.dialect

## Interface JdbcDialect

- All Superinterfaces:
    Serializable
  All Known Implementing Classes:
    BasicJdbcDialect, DB2Dialect, H2Dialect, MySQLDialect, OracleDialect, SQLServerDialect

      public interface JdbcDialect
      extends Serializable

  Represents a dialect of SQL implemented by a particular RDBMS.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `String` | `escape(String ident)`
    `int` | `getFetchSize()` Gives the JDBC driver a hint how many rows should be fetched from the database when more rows are needed.
    `int` | `getMaxParameterCount()` Get max query parameters count.
    `boolean` | `hasMerge()`
    `String` | `insertQuery(String fullTblName, Collection<String> keyCols, Collection<String> valCols)` Construct insert query.
    `String` | `loadCacheQuery(String fullTblName, Iterable<String> uniqCols)` Construct load cache query.
    `String` | `loadCacheRangeQuery(String fullTblName, Collection<String> keyCols, Iterable<String> uniqCols, boolean appendLowerBound, boolean appendUpperBound)` Construct load cache query over specified range.
    `String` | `loadCacheSelectRangeQuery(String fullTblName, Collection<String> keyCols)` Construct query to get ranges bounds.
    `String` | `loadQuery(String fullTblName, Collection<String> keyCols, Iterable<String> cols, int keyCnt)` Construct load query.
    `String` | `mergeQuery(String fullTblName, Collection<String> keyCols, Collection<String> uniqCols)` Construct merge query.
    `String` | `removeQuery(String fullTblName, Iterable<String> keyCols)` Construct remove query.
    `String` | `updateQuery(String fullTblName, Collection<String> keyCols, Iterable<String> valCols)` Construct update query.

- - ### Method Detail

    - #### escape

          String escape(String ident)

      Parameters:
        `ident` - SQL identifier to escape.
      Returns:
        Escaped SQL identifier.

    - #### loadCacheSelectRangeQuery

          String loadCacheSelectRangeQuery(String fullTblName,
                                           Collection<String> keyCols)

      Construct query to get ranges bounds.
      Parameters:
        `fullTblName` - Full table name.
        `keyCols` - Database key columns for order.
      Returns:
        Query for select count.

    - #### loadCacheRangeQuery

          String loadCacheRangeQuery(String fullTblName,
                                     Collection<String> keyCols,
                                     Iterable<String> uniqCols,
                                     boolean appendLowerBound,
                                     boolean appendUpperBound)

      Construct load cache query over specified range.
      Parameters:
        `fullTblName` - Full table name.
        `keyCols` - Database key columns for order.
        `uniqCols` - Database unique value columns.
        `appendLowerBound` - Need add lower bound for range.
        `appendUpperBound` - Need add upper bound for range.
      Returns:
        Query for select count.

    - #### loadCacheQuery

          String loadCacheQuery(String fullTblName,
                                Iterable<String> uniqCols)

      Construct load cache query.
      Parameters:
        `fullTblName` - Full table name.
        `uniqCols` - Database unique value columns.
      Returns:
        Load cache query.

    - #### loadQuery

          String loadQuery(String fullTblName,
                           Collection<String> keyCols,
                           Iterable<String> cols,
                           int keyCnt)

      Construct load query.
      Parameters:
        `fullTblName` - Full table name.
        `keyCols` - Database key columns.
        `cols` - Selected columns.
        `keyCnt` - Key count.
      Returns:
        Load query.

    - #### insertQuery

          String insertQuery(String fullTblName,
                             Collection<String> keyCols,
                             Collection<String> valCols)

      Construct insert query.
      Parameters:
        `fullTblName` - Full table name.
        `keyCols` - Database key columns.
        `valCols` - Database value columns.
      Returns:
        Insert query.

    - #### updateQuery

          String updateQuery(String fullTblName,
                             Collection<String> keyCols,
                             Iterable<String> valCols)

      Construct update query.
      Parameters:
        `fullTblName` - Full table name.
        `keyCols` - Database key columns.
        `valCols` - Database value columns.
      Returns:
        Update query.

    - #### hasMerge

          boolean hasMerge()

      Returns:
        `True` if database support merge operation.

    - #### mergeQuery

          String mergeQuery(String fullTblName,
                            Collection<String> keyCols,
                            Collection<String> uniqCols)

      Construct merge query.
      Parameters:
        `fullTblName` - Full table name.
        `keyCols` - Database key columns.
        `uniqCols` - Database unique value columns.
      Returns:
        Merge query.

    - #### removeQuery

          String removeQuery(String fullTblName,
                             Iterable<String> keyCols)

      Construct remove query.
      Parameters:
        `fullTblName` - Full table name.
        `keyCols` - Database key columns.
      Returns:
        Remove query.

    - #### getMaxParameterCount

          int getMaxParameterCount()

      Get max query parameters count.
      Returns:
        Max query parameters count.

    - #### getFetchSize

          int getFetchSize()

      Gives the JDBC driver a hint how many rows should be fetched from the database when more rows are needed. If the value specified is zero, then the hint is ignored. The default value is zero.
      Returns:
        The fetch size for result sets.

2020 Copyright © Apache Software Foundation
| Follow @ApacheIgnite
Ignite Database and Caching Platform | : ver. 2.9.1
Release Date | : December 9 2020