Class BasicJdbcDialect

java.lang.Object
org.gridgain.cache.store.jdbc.dialect.BasicJdbcDialect
All Implemented Interfaces:
JdbcDialect
Direct Known Subclasses:
Db2Dialect, H2Dialect, MySqlDialect, OracleDialect, SqlServerDialect

public class BasicJdbcDialect extends Object implements JdbcDialect
Basic implementation of dialect based on JDBC specification.
  • Field Details

    • DFLT_MAX_PARAMS_CNT

      protected static final int DFLT_MAX_PARAMS_CNT
      Default max query parameters count.
      See Also:
    • maxParamsCnt

      protected int maxParamsCnt
      Max query parameters count.
    • fetchSize

      protected int fetchSize
      Fetch size.
  • Constructor Details

    • BasicJdbcDialect

      public BasicJdbcDialect()
  • Method Details

    • mkString

      protected static <T> String mkString(Iterable<T> elems, Function<T,String> f, String start, String sep, String end)
      Concatenates elements using provided separator.
      Parameters:
      elems - Concatenated elements.
      f - closure used for transform element.
      start - Start string.
      sep - Separator.
      end - End string.
      Returns:
      Concatenated string.
    • mkString

      protected static String mkString(Iterable<String> strs, String start, String sep, String end)
      Concatenates elements using provided separator.
      Parameters:
      strs - Concatenated string.
      start - Start string.
      sep - Delimiter.
      end - End string.
      Returns:
      Concatenated string.
    • mkString

      protected static String mkString(Iterable<String> strs, String sep)
      Concatenates strings using provided separator.
      Parameters:
      strs - Concatenated string.
      sep - Separator.
      Returns:
      Concatenated string.
    • repeat

      protected static String repeat(String str, int cnt, String start, String sep, String end)
      Concatenates elements using provided delimiter.
      Parameters:
      str - Repeated string.
      cnt - Repeat count.
      start - Start string.
      sep - Separator.
      end - End string.
    • escape

      public String escape(String ident)
      Escape an identifier.
      Specified by:
      escape in interface JdbcDialect
      Parameters:
      ident - SQL identifier to escape.
      Returns:
      Escaped SQL identifier.
    • loadCacheSelectRangeQuery

      public String loadCacheSelectRangeQuery(String fullTblName, Collection<String> keyCols)
      Construct query to get ranges bounds.
      Specified by:
      loadCacheSelectRangeQuery in interface JdbcDialect
      Parameters:
      fullTblName - Full table name.
      keyCols - Database key columns for order.
      Returns:
      Query for select count.
    • loadCacheRangeQuery

      public String loadCacheRangeQuery(String fullTblName, Collection<String> keyCols, Iterable<String> uniqCols, boolean appendLowerBound, boolean appendUpperBound)
      Construct load cache query over specified range.
      Specified by:
      loadCacheRangeQuery in interface JdbcDialect
      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

      public String loadCacheQuery(String fullTblName, Iterable<String> uniqCols)
      Construct load cache query.
      Specified by:
      loadCacheQuery in interface JdbcDialect
      Parameters:
      fullTblName - Full table name.
      uniqCols - Database unique value columns.
      Returns:
      Load cache query.
    • loadQuery

      public String loadQuery(String fullTblName, Collection<String> keyCols, Iterable<String> cols, int keyCnt)
      Construct load query.
      Specified by:
      loadQuery in interface JdbcDialect
      Parameters:
      fullTblName - Full table name.
      keyCols - Database key columns.
      cols - Selected columns.
      keyCnt - Key count.
      Returns:
      Load query.
    • insertQuery

      public String insertQuery(String fullTblName, Collection<String> keyCols, Collection<String> valCols)
      Construct insert query.
      Specified by:
      insertQuery in interface JdbcDialect
      Parameters:
      fullTblName - Full table name.
      keyCols - Database key columns.
      valCols - Database value columns.
      Returns:
      Insert query.
    • updateQuery

      public String updateQuery(String fullTblName, Collection<String> keyCols, Iterable<String> valCols)
      Construct update query.
      Specified by:
      updateQuery in interface JdbcDialect
      Parameters:
      fullTblName - Full table name.
      keyCols - Database key columns.
      valCols - Database value columns.
      Returns:
      Update query.
    • hasMerge

      public boolean hasMerge()
      Test if a dialect supports merge syntax.
      Specified by:
      hasMerge in interface JdbcDialect
      Returns:
      True if database support merge operation.
    • mergeQuery

      public String mergeQuery(String fullTblName, Collection<String> keyCols, Collection<String> uniqCols)
      Construct merge query.
      Specified by:
      mergeQuery in interface JdbcDialect
      Parameters:
      fullTblName - Full table name.
      keyCols - Database key columns.
      uniqCols - Database unique value columns.
      Returns:
      Merge query.
    • removeQuery

      public String removeQuery(String fullTblName, Iterable<String> keyCols)
      Construct remove query.
      Specified by:
      removeQuery in interface JdbcDialect
      Parameters:
      fullTblName - Full table name.
      keyCols - Database key columns.
      Returns:
      Remove query.
    • getMaxParameterCount

      public int getMaxParameterCount()
      Get max query parameters count.
      Specified by:
      getMaxParameterCount in interface JdbcDialect
      Returns:
      Max query parameters count.
    • setMaxParameterCount

      public void setMaxParameterCount(int maxParamsCnt)
      Set max query parameters count.
      Parameters:
      maxParamsCnt - Max query parameters count.
    • getFetchSize

      public 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.
      Specified by:
      getFetchSize in interface JdbcDialect
      Returns:
      The fetch size for result sets.
    • setFetchSize

      public void setFetchSize(int fetchSize)
      Sets fetch size.
      Parameters:
      fetchSize - Fetch size.