public class Queryman
extends java.lang.Object
| Constructor | Description |
|---|---|
Queryman() |
| Modifier and Type | Method | Description |
|---|---|---|
static <T> Expression |
all(T argument) |
Creates an ALL expression that contains one argument
|
static <T> Expression |
all(T... arguments) |
Creates an ALL expression that contains one argument
|
static <T> Expression |
any(T argument) |
Creates an ANY expression that contains one argument
|
static <T> Expression |
any(T... arguments) |
Creates an ANY expression that contains one argument
|
static <T> Expression |
asArray(java.util.Collection<T> arr) |
Array expression:
asArray(List.of(1,2)); // ARRAY[1, 2]
|
static <T> Expression |
asArray(T... arr) |
Array expression:
asArray(1, 2); // ARRAY[1, 2]
|
static <T> Expression |
asConstant(T constant) |
Using a class name of constant it creates an appropriate Expression object.
|
static <T> Expression |
asConstant(T[] constants) |
Creates an array expression.
|
static <T> Expression |
asDate(T date) |
Creates a Date expression.
|
static Expression |
asDollarString(java.lang.String constant) |
Dollar string expression:
$$any string is here$$
|
static Expression |
asDollarString(java.lang.String constant,
java.lang.String tagName) |
Dollar string expression:
$$any string is here$$
$tag$any string is here$tag$
|
static Expression |
asFunc(java.lang.String name,
Expression expression) |
Examples:
asFunc("ALL", asArray(List.of(1, 2))); // ALL(ARRAY[1, 2])
asFunc("SOME", asList(1, 2)); // SOME(1, 2)
|
static <T> Expression |
asFunc(java.lang.String name,
T... arguments) |
|
static <T> Expression |
asList(java.util.Collection<T> constants) |
List expression.
|
static <T> Expression |
asList(T... constants) |
List expression.
|
static Expression |
asName(java.lang.String constant) |
Column reference expression:
table.column
(complex_type).field
|
static Expression |
asOperator(java.lang.String name,
Expression expression) |
This is a synonym of
asFunc(String, Expression). |
static <T> Expression |
asOperator(java.lang.String name,
T... arguments) |
This is a synonym of
asFunc(String, Object[]). |
static Expression |
asQuotedName(java.lang.String constant) |
Quoted column reference expression:
"table"."column"
|
static Expression |
asSubQuery(Query query) |
|
static <T> Expression |
asTime(T time) |
Creates a Time expression.
|
static <T> Expression |
asTimestamp(T timestamp) |
Creates a Timestamp expression.
|
static <T> Conditions |
condition(T leftValue,
T operator,
T rightValue) |
Creates a condition
... |
static <T> Conditions |
conditionAll(T field,
T operator,
Query query) |
Creates a condition.
|
static <T> Conditions |
conditionAny(T field,
T operator,
Query query) |
Create a condition.
|
static <F,T> Conditions |
conditionBetween(F field,
T value1,
T value2) |
Creates a BETWEEN condition
... |
static Conditions |
conditionExists(Query query) |
Creates a condition.
|
static <T> Conditions |
conditionSome(T field,
T operator,
Query query) |
Creates a condition.
|
static SequenceAsStep |
createSequence(java.lang.String name) |
Creates a sequence.
|
static SequenceAsStep |
createSequence(Expression name) |
Creates a sequence.
|
static SequenceAsStep |
createSequenceIfNotExists(java.lang.String name) |
Creates a sequence.
|
static SequenceAsStep |
createSequenceIfNotExists(Expression name) |
Creates a sequence.
|
static SequenceAsStep |
createTempSequence(java.lang.String name) |
Creates a create_sequence.
|
static SequenceAsStep |
createTempSequence(Expression name) |
Creates a sequence.
|
static SequenceAsStep |
createTempSequenceIfNotExists(java.lang.String name) |
Creates a sequence.
|
static SequenceAsStep |
createTempSequenceIfNotExists(Expression name) |
Creates a sequence.
|
static void |
declare(java.lang.String name) |
|
static DeleteAsStep |
deleteFrom(java.lang.String name) |
DELETE statement.
|
static DeleteAsStep |
deleteFrom(Expression name) |
DELETE statement.
|
static DeleteAsStep |
deleteFromOnly(java.lang.String name) |
DELETE statement.
|
static DeleteAsStep |
deleteFromOnly(Expression name) |
DELETE statement.
|
static FromFirstStep |
from(java.lang.String tableName) |
FROM clause can be used as a part of other SQL statements.
|
static FromFirstStep |
from(Expression tableName) |
FROM clause can be used as a part of other SQL statements.
|
static FromFirstStep |
fromOnly(java.lang.String tableName) |
FROM clause can be used as a part of other SQL statements.
|
static FromFirstStep |
fromOnly(Expression tableName) |
FROM clause can be used as a part of other SQL statements.
|
static AbstractSyntaxTree |
getTree() |
|
static InsertAsStep |
insertInto(java.lang.String table) |
INSERT INTO statement.
|
static InsertAsStep |
insertInto(Expression table) |
INSERT INTO statement.
|
static Keyword |
keyword(java.lang.String keyword) |
Creates a keyword which ordinarily is used to build SQL query.
|
static Expression |
max(java.lang.String field) |
Examples:
max("price"); // MAX("price")
|
static NodeMetadata |
nodeMetadata(Keyword keyword) |
NodeMetadata contains a metadata for tree node.
|
static <T> Operator |
operator(T operator) |
Creates an operator which ordinarily is used by condition.
|
static OrderBy |
orderBy(java.lang.String name) |
Creates an
OrderBy object. |
static OrderBy |
orderBy(java.lang.String name,
java.lang.String sorting) |
Creates an
OrderBy object. |
static OrderBy |
orderBy(java.lang.String name,
java.lang.String sorting,
java.lang.String nulls) |
Creates an
OrderBy object. |
static SelectFromStep |
select(Expression... columns) |
SELECT statement.
|
static <T> SelectFromStep |
select(T... columns) |
SELECT statement.
|
static SelectFromStep |
selectAll(Expression... columns) |
SELECT ALL statement.
|
static <T> SelectFromStep |
selectAll(T... columns) |
SELECT ALL statement.
|
static SelectFromStep |
selectDistinct(Expression... columns) |
SELECT DISTINCT statement.
|
static <T> SelectFromStep |
selectDistinct(T... columns) |
SELECT DISTINCT statement.
|
static <T> SelectFromStep |
selectDistinctOn(java.lang.String[] distinct,
T... columns) |
SELECT DISTINCT ON (..) ..
|
static SelectFromStep |
selectDistinctOn(Expression[] distinct,
Expression... columns) |
SELECT DISTINCT ON (..) ..
|
static void |
setTreeFactory(TreeFactory factory) |
Sets a
TreeFactory explicitly, otherwise it is set implicitly
via the static block above. |
static <T> Expression |
some(T argument) |
Creates an SOME expression that contains one argument
|
static <T> Expression |
some(T... arguments) |
Creates an SOME expression that contains one argument
|
static ConflictTarget |
targetColumn(java.lang.String column) |
The type represents an index column.
|
static ConflictTarget |
targetColumn(java.lang.String column,
java.lang.String collation) |
The type represents an index column.
|
static ConflictTarget |
targetColumn(java.lang.String column,
java.lang.String collation,
java.lang.String opclass) |
The type represents an index column.
|
static ConflictTarget |
targetExpression(java.lang.String expression) |
The type represents an index expression.
|
static ConflictTarget |
targetExpression(java.lang.String expression,
java.lang.String collation) |
The type represents an index expression.
|
static ConflictTarget |
targetExpression(java.lang.String expression,
java.lang.String collation,
java.lang.String opclass) |
The type represents an index expression.
|
static UpdateAsStep |
update(java.lang.String name) |
UPDATE statement.
|
static UpdateAsStep |
update(Expression name) |
UPDATE statement.
|
static UpdateAsStep |
updateOnly(java.lang.String name) |
UPDATE statement.
|
static UpdateAsStep |
updateOnly(Expression name) |
UPDATE statement.
|
static <T> Expression |
values(T... expressions) |
VALUES list.
|
static WithAsStep |
with(java.lang.String name,
java.lang.String... columns) |
Starts WITH ...
|
static WithAsStep |
withRecursive(java.lang.String name,
java.lang.String... columns) |
Starts WITH RECURSIVE statement
|
public static void setTreeFactory(TreeFactory factory)
TreeFactory explicitly, otherwise it is set implicitly
via the static block above.factory - tree factorypublic static AbstractSyntaxTree getTree()
public static WithAsStep with(java.lang.String name, java.lang.String... columns)
name - name of with querycolumns - output columnspublic static WithAsStep withRecursive(java.lang.String name, java.lang.String... columns)
name - name of with querycolumns - output columns@SafeVarargs public static <T> SelectFromStep select(T... columns)
select("id", "name", 3); // SELECT id, name, 3
columns - output columnspublic static SelectFromStep select(Expression... columns)
select(asName("id"), asName("name")); // SELECT id, name
columns - output columns@SafeVarargs public static <T> SelectFromStep selectAll(T... columns)
selectAll("id", "name"); // SELECT ALL id, name
columns - output columnspublic static SelectFromStep selectAll(Expression... columns)
select(asName("id"), asName("name")); // SELECT id, name
columns - output columns@SafeVarargs public static <T> SelectFromStep selectDistinct(T... columns)
selectDistinct("id", "name"); // SELECT DISTINCT id, name
columns - output columnspublic static SelectFromStep selectDistinct(Expression... columns)
selectDistinct(asName("id"), asName("name")); // SELECT DISTINCT id, name
columns - output columns@SafeVarargs public static <T> SelectFromStep selectDistinctOn(java.lang.String[] distinct, T... columns)
String[] distinct = {"id"};
selectDistinctOn(distinct, "id", "name"); // SELECT DISTINCT ON (id) id, name
columns - output columnspublic static SelectFromStep selectDistinctOn(Expression[] distinct, Expression... columns)
Expression[] distinct = {"id"};
selectDistinctOn(distinct, asName("id"), asName("name")); // SELECT DISTINCT ON (id) id, name
columns - output columnspublic static SequenceAsStep createSequence(java.lang.String name)
createSequence("book_seq")
.as("smallint")
.incrementBy(1)
.minvalue(0)
.noMaxvalue()
.startWith(0)
.cache(5)
.cycle()
.ownedByNone()
.sql();
name - sequence namepublic static SequenceAsStep createSequence(Expression name)
createSequence(asName("book_seq"))
.as("smallint")
.incrementBy(1)
.minvalue(0)
.noMaxvalue()
.startWith(0)
.cache(5)
.cycle()
.ownedByNone()
.sql();
name - sequence namepublic static SequenceAsStep createTempSequence(java.lang.String name)
createTempSequence("book_seq")
.as("smallint")
.incrementBy(1)
.minvalue(0)
.noMaxvalue()
.startWith(0)
.cache(5)
.cycle()
.ownedByNone()
.sql();
name - sequence namepublic static SequenceAsStep createTempSequence(Expression name)
createTempSequence(asName("book_seq"))
.as("smallint")
.incrementBy(1)
.minvalue(0)
.noMaxvalue()
.startWith(0)
.cache(5)
.cycle()
.ownedByNone()
.sql();
name - sequence namepublic static SequenceAsStep createTempSequenceIfNotExists(java.lang.String name)
createTempSequenceIfNotExists("book_seq")
.as("smallint")
.incrementBy(1)
.minvalue(0)
.noMaxvalue()
.startWith(0)
.cache(5)
.cycle()
.ownedByNone()
.sql();
name - sequence namepublic static SequenceAsStep createTempSequenceIfNotExists(Expression name)
createTempSequenceIfNotExists(asName("book_seq"))
.as("smallint")
.incrementBy(1)
.minvalue(0)
.noMaxvalue()
.startWith(0)
.cache(5)
.cycle()
.ownedByNone()
.sql();
name - sequence namepublic static SequenceAsStep createSequenceIfNotExists(java.lang.String name)
createSequenceIfNotExists("book_seq")
.as("smallint")
.incrementBy(1)
.minvalue(0)
.noMaxvalue()
.startWith(0)
.cache(5)
.cycle()
.ownedByNone()
.sql();
name - sequence namepublic static SequenceAsStep createSequenceIfNotExists(Expression name)
createSequenceIfNotExists(asName("book_seq"))
.as("smallint")
.incrementBy(1)
.minvalue(0)
.noMaxvalue()
.startWith(0)
.cache(5)
.cycle()
.ownedByNone()
.sql();
name - sequence namepublic static void declare(java.lang.String name)
public static DeleteAsStep deleteFrom(java.lang.String name)
// DELETE FROM book AS b USING author, order WHERE b.id = 1 RETURNING id
deleteFrom("book")
.as("b")
.using("author", "order")
.where("b.id", "=", "1")
.returning(asName("id")
.sql()
name - target table namepublic static DeleteAsStep deleteFrom(Expression name)
// DELETE FROM book AS b USING author, order WHERE b.id = 1 RETURNING id
deleteFrom(asName("book"))
.as("b")
.using("author", "order")
.where("b.id", "=", "1")
.returning(asName("id")
.sql()
name - target table namepublic static DeleteAsStep deleteFromOnly(java.lang.String name)
// DELETE FROM ONLY book AS b USING author, order WHERE b.id = 1 RETURNING id
deleteFromOnly("book")
.as("b")
.using("author", "order")
.where("b.id", "=", "1")
.returning(asName("id")
.sql()
name - target table namepublic static DeleteAsStep deleteFromOnly(Expression name)
// DELETE FROM ONLY book AS b USING author, order WHERE b.id = 1 RETURNING id
deleteFromOnly(asName("book"))
.as("b")
.using("author", "order")
.where("b.id", "=", "1")
.returning(asName("id")
.sql()
name - target table namepublic static UpdateAsStep update(java.lang.String name)
// UPDATE book AS b SET author = 'Andrew' WHERE b.id = 1 RETURNING max(price) AS price
update("book")
.as("b")
.set("author", asConstant("Andrew"))
.where("b.id", "=", 1)
.returning(asName("max(price)").as("price"))
.sql();
name - name of the table ot updatepublic static UpdateAsStep update(Expression name)
// UPDATE book AS b SET author = 'Andrew' WHERE b.id = 1 RETURNING max(price) AS price
update(asName("book"))
.as("b")
.set("author", asConstant("Andrew"))
.where("b.id", "=", 1)
.returning(asName("max(price)").as("price"))
.sql();
name - name of the table ot updatepublic static UpdateAsStep updateOnly(java.lang.String name)
// UPDATE ONLY book AS b SET author = 'Andrew' WHERE b.id = 1 RETURNING max(price) AS price
updateOnly("book")
.as("b")
.set("author", asConstant("Andrew"))
.where("b.id", "=", 1)
.returning(asName("max(price)").as("price"))
.sql();
name - name of the table ot updatepublic static UpdateAsStep updateOnly(Expression name)
// UPDATE ONLY book AS b SET author = 'Andrew' WHERE b.id = 1 RETURNING max(price) AS price
updateOnly(asName("book"))
.as("b")
.set("author", asConstant("Andrew"))
.where("b.id", "=", 1)
.returning(asName("max(price)").as("price"))
.sql();
name - name of the table ot updatepublic static InsertAsStep insertInto(java.lang.String table)
insertInto("book")
.as("b")
.columns("id", "name")
.overridingSystemValue()
.values(1, "test")
.onConflict()
.onConstraint("index_name")
.doNothing()
.sql()
table - target table namepublic static InsertAsStep insertInto(Expression table)
insertInto(asName("book"))
.as("b")
.columns("id", "name")
.overridingSystemValue()
.values(1, "test")
.onConflict()
.onConstraint("index_name")
.doNothing()
.sql()
table - target table namepublic static <T> Conditions condition(T leftValue, T operator, T rightValue)
...
.where(condition("id", "=", "author_id"))
...
T - Any primitive or its wrapper, Expression, Operator or Query objectleftValue - left operand, it may by any primitive or its wrapper.operator - operator, String or Operator objectrightValue - right operand, it may by any primitive or its wrapper.Conditionspublic static <F,T> Conditions conditionBetween(F field, T value1, T value2)
...
.where(conditionBetween("id", "2", "10"))
...
T - any primitive or its wrapper ot ExpressionF - String or Expressionfield - fieldvalue1 - left value of ANDvalue2 - right value of ANDConditionspublic static Conditions conditionExists(Query query)
conditionExists(select(1, 2)); // EXISTS (SELECT 1, 2);
query - subqueryConditionspublic static <T> Conditions conditionSome(T field, T operator, Query query)
conditionSome("id", "=", select(1)); // id = SOME (SELECT 1);
field - left operandoperator - operatorquery - subquery right operandConditionspublic static <T> Conditions conditionAny(T field, T operator, Query query)
conditionAny("id", "=", select(1, 2)); // id = ANY (SELECT 1, 2);
field - left operandoperator - operatorquery - subquery right operandConditionspublic static <T> Conditions conditionAll(T field, T operator, Query query)
conditionAll("id", "=", select(1, 2)); // id = ALL (SELECT 1, 2);
field - left operandoperator - operatorquery - subquery -right operandConditionspublic static FromFirstStep from(java.lang.String tableName)
from("book")
.as(b)
.tablesample("BERNOULLI", "1")
.repeatable(1)
tableName - is a table name.from(Expression)public static FromFirstStep from(Expression tableName)
from(asName("book"))
.as(b)
.tablesample("BERNOULLI", "1")
.repeatable(1)
tableName - is a table name.from(Expression)public static FromFirstStep fromOnly(java.lang.String tableName)
fromOnly("book")
.as(b)
.tablesample("BERNOULLI", "1")
.repeatable(1)
tableName - is a table name.fromOnly(Expression)public static FromFirstStep fromOnly(Expression tableName)
from(asName("book"))
.as(b)
.tablesample("BERNOULLI", "1")
.repeatable(1)
tableName - is a table name.public static <T> Expression asConstant(T constant)
Date is could not be convert to particular expression,
you should use ad hoc methods to convert it to any expression of DATE type:
* asDate(Object)
* asTime(Object)
* asTimestamp(Object)constant - any constantjava.lang.IllegalArgumentException - if constant is not supportedpublic static <T> Expression asConstant(T[] constants)
constants - array constantasConstant(Object)public static <T> Expression asDate(T date)
date - dateDateExpressionpublic static <T> Expression asTime(T time)
time - timeTimeExpressionpublic static <T> Expression asTimestamp(T timestamp)
timestamp - timeTimestampExpressionpublic static Expression asDollarString(java.lang.String constant)
$$any string is here$$
constant - dollar stringpublic static Expression asDollarString(java.lang.String constant, java.lang.String tagName)
$$any string is here$$
$tag$any string is here$tag$
constant - dollar stringtagName - tag namepublic static Expression asName(java.lang.String constant)
table.column
(complex_type).field
constant - column reference stringpublic static Expression asQuotedName(java.lang.String constant)
"table"."column"
constant - column reference string@SafeVarargs public static <T> Expression asList(T... constants)
asString(1, 2, 3); // (1, 2, 3)
constants - values... are values concatenated by comma.public static <T> Expression asList(java.util.Collection<T> constants)
asString(List.of(1, 2, 3)); // (1, 2, 3)
constants - values... are values concatenated by comma.@SafeVarargs public static <T> Expression asArray(T... arr)
asArray(1, 2); // ARRAY[1, 2]
arr - - values of array... are values concatenated by comma.public static <T> Expression asArray(java.util.Collection<T> arr)
asArray(List.of(1,2)); // ARRAY[1, 2]
arr - - values of array... are values concatenated by comma.public static Expression asFunc(java.lang.String name, Expression expression)
asFunc("ALL", asArray(List.of(1, 2))); // ALL(ARRAY[1, 2])
asFunc("SOME", asList(1, 2)); // SOME(1, 2)
name - - function or operator name, examples: ALL, ANY ...expression - - list or array expressionname and expression objectsasArray(Object[]),
asList(Object[])@SafeVarargs public static <T> Expression asFunc(java.lang.String name, T... arguments)
name - of functionarguments - argumentsasFunc(String, Expression)public static Expression max(java.lang.String field)
max("price"); // MAX("price")
field - fieldpublic static <T> Expression all(T argument)
T - String ot Expression objectargument - argument of any@SafeVarargs public static <T> Expression all(T... arguments)
T - String ot Expression objectsarguments - argument ofpublic static <T> Expression any(T argument)
T - String ot Expression objectargument - argument of any@SafeVarargs public static <T> Expression any(T... arguments)
T - String ot Expression objectsarguments - argument ofpublic static <T> Expression some(T argument)
T - String ot Expression objectargument - argument of any@SafeVarargs public static <T> Expression some(T... arguments)
T - String ot Expression objectsarguments - argument ofpublic static Expression asOperator(java.lang.String name, Expression expression)
asFunc(String, Expression).
Examples:
asOperator("ALL", asArray(List.of(1, 2))); // ALL(ARRAY[1, 2])
asOperator("SOME", asList(1, 2)); // SOME(1, 2)
name - - function or operator name, examples: ALL, ANY ...expression - - list or array expressionname and expression objectsasArray(Object[]),
asList(Object[]),
asFunc(String, Expression)@SafeVarargs public static <T> Expression asOperator(java.lang.String name, T... arguments)
asFunc(String, Object[]).name - of functionarguments - argumentsasOperator(String, Expression)@SafeVarargs public static <T> Expression values(T... expressions)
values(asList(1, 2), asList(3, 4)); // VALUES(1, 2), (3, 4)
// (VALUES(1, 2), (3, 4)) AS point(x, y)
values(asList(1, 2), asList(3, 4)).as("point", "x", "y");
expressions - list of expressionsasList(Object[])public static Expression asSubQuery(Query query)
query - subquerypublic static <T> Operator operator(T operator)
public static Keyword keyword(java.lang.String keyword)
public static NodeMetadata nodeMetadata(Keyword keyword)
keyword - NodeMetadata is composed from keyword.public static ConflictTarget targetExpression(java.lang.String expression)
ConflictTarget type is a part of INSERT .. ON CONFLICT clauseexpression - index expressionpublic static ConflictTarget targetExpression(java.lang.String expression, java.lang.String collation)
ConflictTarget type is a part of INSERT .. ON CONFLICT clauseexpression - index expressioncollation - collationpublic static ConflictTarget targetExpression(java.lang.String expression, java.lang.String collation, java.lang.String opclass)
ConflictTarget type is a part of INSERT .. ON CONFLICT clauseexpression - index expressioncollation - collationopclass - operator classpublic static ConflictTarget targetColumn(java.lang.String column)
ConflictTarget type is a part of INSERT .. ON CONFLICT clausecolumn - index expressionpublic static ConflictTarget targetColumn(java.lang.String column, java.lang.String collation)
ConflictTarget type is a part of INSERT .. ON CONFLICT clausecolumn - index expressioncollation - collationpublic static ConflictTarget targetColumn(java.lang.String column, java.lang.String collation, java.lang.String opclass)
ConflictTarget type is a part of INSERT .. ON CONFLICT clausecolumn - index expressioncollation - collationopclass - operator classpublic static OrderBy orderBy(java.lang.String name)
OrderBy object. It's used in SELECT .. ORDER BY clause.name - column namepublic static OrderBy orderBy(java.lang.String name, java.lang.String sorting)
OrderBy object. It's used in SELECT .. ORDER BY clause.name - column name or expressionsorting - sorting constant: ASC | DESC | USING constantpublic static OrderBy orderBy(java.lang.String name, java.lang.String sorting, java.lang.String nulls)
OrderBy object. It's used in SELECT .. ORDER BY clause.name - column name or expressionsorting - sorting constant: ASC | DESC | USING constantnulls - sets a position a row with null values for name column.
It may be FIRST | LAST