Class QueryBuilder
java.lang.Object
org.openprovenance.prov.template.compiler.sql.QueryBuilder
Provides a fluent API for programmatically constructing and executing SQL
queries.
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionConstructs a query builder from an existing SQL query. -
Method Summary
Modifier and TypeMethodDescriptionAppends aliasstatic StringCreates an "and" conditional group.Creates an "and" conditional.static StringCreates an "or" conditional group.Appends arguments to a function callAppends body endAppends body startAppends commentstatic Function<PrettyPrinter, org.openprovenance.prov.template.compiler.sql.QueryBuilder.FunctionQueryBuilder> createFunction(String fun) Creates a "create function" statement.cte(Map<String, Function<PrettyPrinter, ?>> values) Appends commont table expression CTEAppends DEFAULT VALUESstatic QueryBuilderdeleteFrom(String table) Creates a "delete from" query.end()static StringequalTo(QueryBuilder queryBuilder) Creates an "equal to" conditional.execute(Connection connection) Executes a query.execute(Connection connection, Map<String, ?> arguments) Executes a query.executeQuery(PreparedStatement statement, Map<String, ?> arguments) Executes a query.intexecuteUpdate(PreparedStatement statement, Map<String, ?> arguments) Executes a query.static Stringexists(QueryBuilder queryBuilder) Creates an "exists" conditional.voidflush()Appends a "for update" clause to a query.Appends a "from" clause to a query.from(Function<PrettyPrinter, QueryBuilder> queryBuilderFun, String alias) Appends a "from" clause to a query.static Function<PrettyPrinter, QueryBuilder> functionCall(String function, List<?> values, String alias) Returns the keys that were generated by the query.Returns the parameters parsed by the query builder.Returns the result of executing a query that is expected to return at most a single row.Returns the results of executing a query.getSQL()Returns the generated SQL.intReturns the number of rows that were affected by the query.static Stringin(QueryBuilder queryBuilder) Creates an "in" conditional.insertInto(String table) Creates an "insert into" query.Appends a "join" clause to a query.join(Function<PrettyPrinter, QueryBuilder> queryBuilderFun, String alias) Appends a "join" clause to a query.Appends a "left join" clause to a query.limit(int count) Appends a "limit" clause to a query.<T extends QueryBuilder>
Tnext(Function<PrettyPrinter, T> qb) static StringnotEqualTo(QueryBuilder queryBuilder) Creates a "not equal to" conditional.static StringnotExists(QueryBuilder queryBuilder) Creates a "not exists" conditional.static StringnotIn(QueryBuilder queryBuilder) Creates a "not in" conditional.Appends an "on" clause to a query.Creates an "or" conditional.Appends an "order by" clause to a query.Appends column params to an "create function" statement.prepare(Connection connection) Prepares a query for execution.returning(boolean brackets, Collection<String> outputs) returning(Collection<String> outputs) Appends outputsAppends return clause to an "create function" statement.Appends a "right join" clause to a query.static Function<PrettyPrinter, QueryBuilder> Creates a "select" query.Appends column values to an "update" query.toString()Returns the query as a string.union(Function<PrettyPrinter, QueryBuilder> queryBuilderFun) Appends a "union" clause to a query.static QueryBuilderCreates an "update" query.Appends column values to an "insert into" query.Appends a "where" clause to a query.
-
Field Details
-
prettyPrinter
-
-
Constructor Details
-
QueryBuilder
Constructs a query builder from an existing SQL query.- Parameters:
o- The existing SQL query.
-
QueryBuilder
public QueryBuilder() -
QueryBuilder
-
-
Method Details
-
getPrettyPrinter
-
select
Creates a "select" query.- Parameters:
columns- The column names.- Returns:
- The new
QueryBuilderinstance.
-
functionCall
public static Function<PrettyPrinter,QueryBuilder> functionCall(String function, List<?> values, String alias) -
selectExp
-
from
Appends a "from" clause to a query.- Parameters:
tables- The table names.- Returns:
- The
QueryBuilderinstance.
-
from
Appends a "from" clause to a query.- Parameters:
queryBuilderFun- a builder for a subqueryalias- the alias for the subquery- Returns:
- the
QueryBuilderinstance. public QueryBuilder from(QueryBuilder queryBuilder, String alias) { if (queryBuilder == null || alias == null) { throw new IllegalArgumentException(); } sqlBuilder.append(" FROM ("); sqlBuilder.append(queryBuilder.getSQL()); sqlBuilder.append(") AS "); sqlBuilder.append(alias); sqlBuilder.append(" "); parameters.addAll(queryBuilder.parameters); return this; }
-
join
Appends a "join" clause to a query.- Parameters:
table- The table name.- Returns:
- The
QueryBuilderinstance.
-
join
Appends a "join" clause to a query.- Parameters:
queryBuilderFun- A "select" subquery.alias- The subquery's alias.- Returns:
- The
QueryBuilderinstance.
-
leftJoin
Appends a "left join" clause to a query.- Parameters:
table- The table name.- Returns:
- The
QueryBuilderinstance.
-
rightJoin
Appends a "right join" clause to a query.- Parameters:
table- The table name.- Returns:
- The
QueryBuilderinstance.
-
on
Appends an "on" clause to a query.- Parameters:
predicates- The clause predicates.- Returns:
- The
QueryBuilderinstance.
-
where
Appends a "where" clause to a query.- Parameters:
predicates- The clause predicates.- Returns:
- The
QueryBuilderinstance.
-
and
Creates an "and" conditional.- Parameters:
predicates- The conditional's predicates.- Returns:
- The conditional text.
-
or
Creates an "or" conditional.- Parameters:
predicates- The conditional's predicates.- Returns:
- The conditional text.
-
allOf
Creates an "and" conditional group.- Parameters:
predicates- The group's predicates.- Returns:
- The conditional text.
-
anyOf
Creates an "or" conditional group.- Parameters:
predicates- The group's predicates.- Returns:
- The conditional text.
-
equalTo
Creates an "equal to" conditional.- Parameters:
queryBuilder- The conditional's subquery.- Returns:
- The conditional text.
-
notEqualTo
Creates a "not equal to" conditional.- Parameters:
queryBuilder- The conditional's subquery.- Returns:
- The conditional text.
-
in
Creates an "in" conditional.- Parameters:
queryBuilder- The conditional's subquery.- Returns:
- The conditional text.
-
notIn
Creates a "not in" conditional.- Parameters:
queryBuilder- The conditional's subquery.- Returns:
- The conditional text.
-
exists
Creates an "exists" conditional.- Parameters:
queryBuilder- The conditional's subquery.- Returns:
- The conditional text.
-
notExists
Creates a "not exists" conditional.- Parameters:
queryBuilder- The conditional's subquery.- Returns:
- The conditional text.
-
orderBy
Appends an "order by" clause to a query.- Parameters:
columns- The column names.- Returns:
- The
QueryBuilderinstance.
-
returning
Appends outputs- Parameters:
outputs- The column names.- Returns:
- The
QueryBuilderinstance.
-
returning
-
alias
Appends alias- Parameters:
alias- the alias for the subquery- Returns:
- The
QueryBuilderinstance.
-
comment
Appends comment- Parameters:
comment- the comment- Returns:
- The
QueryBuilderinstance.
-
defaultValues
Appends DEFAULT VALUES- Returns:
- The
QueryBuilderinstance.
-
limit
Appends a "limit" clause to a query.- Parameters:
count- The limit count.- Returns:
- The
QueryBuilderinstance.
-
forUpdate
Appends a "for update" clause to a query.- Returns:
- The
QueryBuilderinstance.
-
union
Appends a "union" clause to a query.- Parameters:
queryBuilderFun- The query builder to append.- Returns:
- The
QueryBuilderinstance.
-
insertInto
Creates an "insert into" query.- Parameters:
table- The table name.- Returns:
- The new
QueryBuilderinstance.
-
values
Appends column values to an "insert into" query.- Parameters:
values- The values to insert.- Returns:
- The
QueryBuilderinstance.
-
args
Appends arguments to a function call- Parameters:
values- The values to insert.- Returns:
- The
QueryBuilderinstance.
-
cte
Appends commont table expression CTE- Parameters:
values- The values to insert.- Returns:
- The
QueryBuilderinstance.
-
update
Creates an "update" query.- Parameters:
table- The table name.- Returns:
- The new
QueryBuilderinstance.
-
set
Appends column values to an "update" query.- Parameters:
values- The values to update.- Returns:
- The
QueryBuilderinstance.
-
bodyEnd
Appends body end- Parameters:
key- The params of the function.- Returns:
- The
QueryBuilderinstance.
-
bodyStart
Appends body start- Parameters:
key- The params of the function.- Returns:
- The
QueryBuilderinstance.
-
next
-
andThen
-
returns
Appends return clause to an "create function" statement.- Parameters:
relation- the relation nameparams- The params of the function.- Returns:
- The
QueryBuilderinstance.
-
params
Appends column params to an "create function" statement.- Parameters:
params- The params of the function.- Returns:
- The
QueryBuilderinstance.
-
end
-
flush
public void flush() -
createFunction
public static Function<PrettyPrinter,org.openprovenance.prov.template.compiler.sql.QueryBuilder.FunctionQueryBuilder> createFunction(String fun) Creates a "create function" statement.- Parameters:
fun- The function name.- Returns:
- The new
QueryBuilderinstance.
-
deleteFrom
Creates a "delete from" query.- Parameters:
table- The table name.- Returns:
- The new
QueryBuilderinstance.
-
execute
Executes a query.- Parameters:
connection- The connection on which the query will be executed.- Returns:
- The
QueryBuilderinstance. - Throws:
SQLException- If an error occurs while executing the query.
-
execute
Executes a query.- Parameters:
connection- The connection on which the query will be executed.arguments- The query arguments.- Returns:
- The
QueryBuilderinstance. - Throws:
SQLException- If an error occurs while executing the query.
-
getResult
Returns the result of executing a query that is expected to return at most a single row.- Returns:
- The query result, or
nullif the query either did not produce a result set or did not return any rows.
-
getResults
Returns the results of executing a query.- Returns:
- The query results, or
nullif the query did not produce a result set.
-
getUpdateCount
public int getUpdateCount()Returns the number of rows that were affected by the query.- Returns:
- The number of rows that were affected by the query, or -1 if the query did not produce an update count.
-
getGeneratedKeys
Returns the keys that were generated by the query.- Returns:
- The keys that were generated by the query, or
nullif the query did not produce any generated keys.
-
prepare
Prepares a query for execution.- Parameters:
connection- The connection on which the query will be executed.- Returns:
- A prepared statement that can be used to execute the query.
- Throws:
SQLException- If an error occurs while preparing the query.
-
executeQuery
public ResultSet executeQuery(PreparedStatement statement, Map<String, ?> arguments) throws SQLExceptionExecutes a query.- Parameters:
statement- The statement that will be used to execute the query.arguments- The query arguments.- Returns:
- The query results.
- Throws:
SQLException- If an error occurs while executing the query.
-
executeUpdate
Executes a query.- Parameters:
statement- The statement that will be used to execute the query.arguments- The query arguments.- Returns:
- The number of rows that were affected by the query.
- Throws:
SQLException- If an error occurs while executing the query.
-
getParameters
Returns the parameters parsed by the query builder.- Returns:
- The parameters parsed by the query builder.
-
getSQL
Returns the generated SQL.- Returns:
- The generated SQL.
-
toString
Returns the query as a string.
-