Class BasicJdbcDialect
- java.lang.Object
-
- org.apache.ignite.cache.store.jdbc.dialect.BasicJdbcDialect
-
- All Implemented Interfaces:
Serializable,JdbcDialect
- Direct Known Subclasses:
DB2Dialect,H2Dialect,MySQLDialect,OracleDialect,SQLServerDialect
public class BasicJdbcDialect extends Object implements JdbcDialect
Basic implementation of dialect based on JDBC specification.- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected static intDFLT_MAX_PARAMS_CNTDefault max query parameters count.protected intfetchSizeFetch size.protected intmaxParamsCntMax query parameters count.
-
Constructor Summary
Constructors Constructor Description BasicJdbcDialect()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description Stringescape(String ident)intgetFetchSize()Gives the JDBC driver a hint how many rows should be fetched from the database when more rows are needed.intgetMaxParameterCount()Get max query parameters count.booleanhasMerge()StringinsertQuery(String fullTblName, Collection<String> keyCols, Collection<String> valCols)Construct insert query.StringloadCacheQuery(String fullTblName, Iterable<String> uniqCols)Construct load cache query.StringloadCacheRangeQuery(String fullTblName, Collection<String> keyCols, Iterable<String> uniqCols, boolean appendLowerBound, boolean appendUpperBound)Construct load cache query over specified range.StringloadCacheSelectRangeQuery(String fullTblName, Collection<String> keyCols)Construct query to get ranges bounds.StringloadQuery(String fullTblName, Collection<String> keyCols, Iterable<String> cols, int keyCnt)Construct load query.StringmergeQuery(String fullTblName, Collection<String> keyCols, Collection<String> uniqCols)Construct merge query.protected static StringmkString(Iterable<String> strs, String sep)Concatenates strings using provided separator.protected static StringmkString(Iterable<String> strs, String start, String sep, String end)Concatenates elements using provided separator.protected static <T> StringmkString(Iterable<T> elems, org.apache.ignite.internal.util.typedef.C1<T,String> f, String start, String sep, String end)Concatenates elements using provided separator.StringremoveQuery(String fullTblName, Iterable<String> keyCols)Construct remove query.protected static Stringrepeat(String str, int cnt, String start, String sep, String end)Concatenates elements using provided delimiter.voidsetFetchSize(int fetchSize)Sets fetch size.voidsetMaxParameterCount(int maxParamsCnt)Set max query parameters count.StringupdateQuery(String fullTblName, Collection<String> keyCols, Iterable<String> valCols)Construct update query.
-
-
-
Field Detail
-
DFLT_MAX_PARAMS_CNT
protected static final int DFLT_MAX_PARAMS_CNT
Default max query parameters count.- See Also:
- Constant Field Values
-
maxParamsCnt
protected int maxParamsCnt
Max query parameters count.
-
fetchSize
protected int fetchSize
Fetch size.
-
-
Method Detail
-
mkString
protected static <T> String mkString(Iterable<T> elems, org.apache.ignite.internal.util.typedef.C1<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)
- Specified by:
escapein interfaceJdbcDialect- 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:
loadCacheSelectRangeQueryin interfaceJdbcDialect- 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:
loadCacheRangeQueryin interfaceJdbcDialect- 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:
loadCacheQueryin interfaceJdbcDialect- 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:
loadQueryin interfaceJdbcDialect- 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:
insertQueryin interfaceJdbcDialect- 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:
updateQueryin interfaceJdbcDialect- Parameters:
fullTblName- Full table name.keyCols- Database key columns.valCols- Database value columns.- Returns:
- Update query.
-
hasMerge
public boolean hasMerge()
- Specified by:
hasMergein interfaceJdbcDialect- Returns:
Trueif database support merge operation.
-
mergeQuery
public String mergeQuery(String fullTblName, Collection<String> keyCols, Collection<String> uniqCols)
Construct merge query.- Specified by:
mergeQueryin interfaceJdbcDialect- 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:
removeQueryin interfaceJdbcDialect- Parameters:
fullTblName- Full table name.keyCols- Database key columns.- Returns:
- Remove query.
-
getMaxParameterCount
public int getMaxParameterCount()
Get max query parameters count.- Specified by:
getMaxParameterCountin interfaceJdbcDialect- 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:
getFetchSizein interfaceJdbcDialect- Returns:
- The fetch size for result sets.
-
setFetchSize
public void setFetchSize(int fetchSize)
Sets fetch size.- Parameters:
fetchSize- Fetch size.
-
-