Class DBQuery
- java.lang.Object
- 
- com.inductiveautomation.ignition.gateway.datasource.query.DBQuery
 
- 
 public class DBQuery extends java.lang.ObjectA class that helps construct a dynamic SQL SELECT query, using proper quoting syntax and prepared-statement style parameters. Use by creating a DBQuery, adding return columns, where clauses, etc. When finished, you can either retrieve the SQL and params and execute manually, or use one of the execute functions.
- 
- 
Nested Class SummaryNested Classes Modifier and Type Class Description static classDBQuery.AndClausestatic interfaceDBQuery.ClauseA clause that requires parameters to be added to the prepared statementstatic interfaceDBQuery.Columnstatic classDBQuery.OrClausestatic classDBQuery.Paramstatic classDBQuery.RawClausestatic interfaceDBQuery.RowToObject<T>static interfaceDBQuery.SQLClauseAn arbitrary part of a SQL query, that knows how to append itself into a larger query.static interfaceDBQuery.StreamingHandler
 - 
Field SummaryFields Modifier and Type Field Description static DBQuery.RowToObject<java.lang.Integer>TO_INTPulls the first column out of each row as an integerstatic DBQuery.RowToObject<java.lang.String>TO_STRINGPulls the first column out of each row as a string
 - 
Constructor SummaryConstructors Constructor Description DBQuery(java.lang.String q)Create a new queryDBQuery(java.lang.String q, DatabaseVendor vendor)
 - 
Method SummaryAll Methods Instance Methods Concrete Methods Modifier and Type Method Description DBQueryaddGroupBy(java.lang.String column)DBQueryaddOrderBy(java.lang.String column, boolean ascending)DBQueryaddOrWhereClause(DBQuery.Clause... clauses)DBQueryaddReturnColumn(java.lang.String column, SQLType type)DBQueryaddTable(java.lang.String tableName)DBQueryaddTableJoin(java.lang.String table1, java.lang.String table1Alias, java.lang.String table2, java.lang.String table2Alias, java.lang.String expr)DBQueryaddWhereClause(DBQuery.Clause c)com.inductiveautomation.ignition.gateway.datasource.query.DBQuery.Operatorequal(java.lang.String column, java.lang.Object value)com.inductiveautomation.ignition.gateway.datasource.query.DBQuery.Operatorequal(java.lang.String column, java.lang.Object value, SQLType type)java.util.List<java.util.List<java.lang.Object>>execute(java.sql.Connection con)Execute the query represented by this DBQuery, returning a list of rows.java.util.List<java.util.List<java.lang.Object>>execute(java.sql.Connection con, boolean closeConnectionAfter)Execute the query represented by this DBQuery, returning a list of rows.<T> java.util.List<T>execute(java.sql.Connection con, boolean closeConnectionAfter, DBQuery.RowToObject<T> handler)voidexecute(java.sql.Connection con, boolean closeConnectionAfter, DBQuery.StreamingHandler handler)Executes the query represented by this DBQuery, calling the streaming handler'sDBQuery.StreamingHandler.onRow(int, ResultSet)function on every row returned be the ResultSet.voidexecute(java.sql.Connection con, DBQuery.StreamingHandler handler)Executes the query represented by this DBQuery, calling the streaming handler'sDBQuery.StreamingHandler.onRow(int, ResultSet)function on every row returned be the ResultSet.com.inductiveautomation.ignition.gateway.datasource.query.DBQuery.Operatorge(java.lang.String column, java.lang.Object value)com.inductiveautomation.ignition.gateway.datasource.query.DBQuery.Operatorge(java.lang.String column, java.lang.Object value, SQLType type)DBQuery.Param[]getParams()java.lang.StringgetQuoteChar()java.lang.StringgetSql()java.util.List<DBQuery.Clause>getWhereClauses()com.inductiveautomation.ignition.gateway.datasource.query.DBQuery.Operatorgt(java.lang.String column, java.lang.Object value)com.inductiveautomation.ignition.gateway.datasource.query.DBQuery.Operatorgt(java.lang.String column, java.lang.Object value, SQLType type)com.inductiveautomation.ignition.gateway.datasource.query.DBQuery.OperatorhasFlag(java.lang.String column, java.lang.Object value)com.inductiveautomation.ignition.gateway.datasource.query.DBQuery.OperatorhasFlag(java.lang.String column, java.lang.Object value, SQLType type)com.inductiveautomation.ignition.gateway.datasource.query.DBQuery.Operatorisnotnull(java.lang.String column)com.inductiveautomation.ignition.gateway.datasource.query.DBQuery.Operatorisnull(java.lang.String column)com.inductiveautomation.ignition.gateway.datasource.query.DBQuery.Operatorle(java.lang.String column, java.lang.Object value)com.inductiveautomation.ignition.gateway.datasource.query.DBQuery.Operatorle(java.lang.String column, java.lang.Object value, SQLType type)com.inductiveautomation.ignition.gateway.datasource.query.DBQuery.Operatorlike(java.lang.String column, java.lang.Object value)com.inductiveautomation.ignition.gateway.datasource.query.DBQuery.Operatorlike(java.lang.String column, java.lang.Object value, SQLType type)com.inductiveautomation.ignition.gateway.datasource.query.DBQuery.Operatorlt(java.lang.String column, java.lang.Object value)com.inductiveautomation.ignition.gateway.datasource.query.DBQuery.Operatorlt(java.lang.String column, java.lang.Object value, SQLType type)com.inductiveautomation.ignition.gateway.datasource.query.DBQuery.Operatornotequal(java.lang.String column, java.lang.Object value)com.inductiveautomation.ignition.gateway.datasource.query.DBQuery.Operatornotequal(java.lang.String column, java.lang.Object value, SQLType type)com.inductiveautomation.ignition.gateway.datasource.query.DBQuery.OperatornotFlag(java.lang.String column, java.lang.Object value)com.inductiveautomation.ignition.gateway.datasource.query.DBQuery.OperatornotFlag(java.lang.String column, java.lang.Object value, SQLType type)DBQuerysetCurrentTableAlias(java.lang.String value)Sets the alias that will be used by subsequent calls to functions that add column based elements.
 
- 
- 
- 
Field Detail- 
TO_STRINGpublic static final DBQuery.RowToObject<java.lang.String> TO_STRING Pulls the first column out of each row as a string
 - 
TO_INTpublic static final DBQuery.RowToObject<java.lang.Integer> TO_INT Pulls the first column out of each row as an integer
 
- 
 - 
Constructor Detail- 
DBQuerypublic DBQuery(@Nullable java.lang.String q)Create a new query- Parameters:
- q- The column quote character
 
 - 
DBQuerypublic DBQuery(java.lang.String q, DatabaseVendor vendor)
 
- 
 - 
Method Detail- 
getQuoteCharpublic java.lang.String getQuoteChar() 
 - 
setCurrentTableAliaspublic DBQuery setCurrentTableAlias(java.lang.String value) Sets the alias that will be used by subsequent calls to functions that add column based elements. For example, if you wanted to select columns from multiple tables, you would do:
 - setCurrentTableAlias("a")
- addReturnColumn(...)
- setCurrentTableAlias("b")
- addReturnColumn(...)
 
 - 
executepublic java.util.List<java.util.List<java.lang.Object>> execute(java.sql.Connection con) throws java.sql.SQLExceptionExecute the query represented by this DBQuery, returning a list of rows. Individual columns will be read per theSQLTypespecified inaddReturnColumn(String, SQLType), which can prevent some auto-coercion issues if JDBC drivers implementResultSet.getObject(int)in an unusual way. Closes the connection provided automatically after executing the query.- Parameters:
- con- The connection to use.
- Returns:
- A list of lists of rows. Each inner list will have as many elements as columns have been specified on the query.
- Throws:
- java.sql.SQLException
 
 - 
executepublic java.util.List<java.util.List<java.lang.Object>> execute(java.sql.Connection con, boolean closeConnectionAfter) throws java.sql.SQLExceptionExecute the query represented by this DBQuery, returning a list of rows. Individual columns will be read per theSQLTypespecified inaddReturnColumn(String, SQLType), which can prevent some auto-coercion issues if JDBC drivers implementResultSet.getObject(int)in an unusual way.- Parameters:
- con- The connection to use.
- closeConnectionAfter- Whether to close the connection after the query has been executed.
- Returns:
- A list of lists of rows. Each inner list will have as many elements as columns have been specified on the query.
- Throws:
- java.sql.SQLException
 
 - 
executepublic void execute(java.sql.Connection con, DBQuery.StreamingHandler handler) throws java.sql.SQLExceptionExecutes the query represented by this DBQuery, calling the streaming handler'sDBQuery.StreamingHandler.onRow(int, ResultSet)function on every row returned be the ResultSet. Closes the connection afterwards.- Throws:
- java.sql.SQLException
 
 - 
executepublic void execute(java.sql.Connection con, boolean closeConnectionAfter, DBQuery.StreamingHandler handler) throws java.sql.SQLExceptionExecutes the query represented by this DBQuery, calling the streaming handler'sDBQuery.StreamingHandler.onRow(int, ResultSet)function on every row returned be the ResultSet.- Parameters:
- closeConnectionAfter- Whether to close the provided connection after executing the query.
- Throws:
- java.sql.SQLException
 
 - 
executepublic <T> java.util.List<T> execute(java.sql.Connection con, boolean closeConnectionAfter, DBQuery.RowToObject<T> handler) throws java.sql.SQLException- Throws:
- java.sql.SQLException
 
 - 
addTablepublic DBQuery addTable(java.lang.String tableName) 
 - 
addTableJoinpublic DBQuery addTableJoin(java.lang.String table1, java.lang.String table1Alias, java.lang.String table2, java.lang.String table2Alias, java.lang.String expr) 
 - 
addWhereClausepublic DBQuery addWhereClause(DBQuery.Clause c) 
 - 
getWhereClausespublic java.util.List<DBQuery.Clause> getWhereClauses() 
 - 
addOrWhereClausepublic DBQuery addOrWhereClause(DBQuery.Clause... clauses) 
 - 
addGroupBypublic DBQuery addGroupBy(java.lang.String column) 
 - 
addOrderBypublic DBQuery addOrderBy(java.lang.String column, boolean ascending) 
 - 
equalpublic com.inductiveautomation.ignition.gateway.datasource.query.DBQuery.Operator equal(java.lang.String column, java.lang.Object value)
 - 
equalpublic com.inductiveautomation.ignition.gateway.datasource.query.DBQuery.Operator equal(java.lang.String column, java.lang.Object value, SQLType type)
 - 
notequalpublic com.inductiveautomation.ignition.gateway.datasource.query.DBQuery.Operator notequal(java.lang.String column, java.lang.Object value)
 - 
notequalpublic com.inductiveautomation.ignition.gateway.datasource.query.DBQuery.Operator notequal(java.lang.String column, java.lang.Object value, SQLType type)
 - 
gtpublic com.inductiveautomation.ignition.gateway.datasource.query.DBQuery.Operator gt(java.lang.String column, java.lang.Object value)
 - 
gtpublic com.inductiveautomation.ignition.gateway.datasource.query.DBQuery.Operator gt(java.lang.String column, java.lang.Object value, SQLType type)
 - 
gepublic com.inductiveautomation.ignition.gateway.datasource.query.DBQuery.Operator ge(java.lang.String column, java.lang.Object value)
 - 
gepublic com.inductiveautomation.ignition.gateway.datasource.query.DBQuery.Operator ge(java.lang.String column, java.lang.Object value, SQLType type)
 - 
ltpublic com.inductiveautomation.ignition.gateway.datasource.query.DBQuery.Operator lt(java.lang.String column, java.lang.Object value)
 - 
ltpublic com.inductiveautomation.ignition.gateway.datasource.query.DBQuery.Operator lt(java.lang.String column, java.lang.Object value, SQLType type)
 - 
lepublic com.inductiveautomation.ignition.gateway.datasource.query.DBQuery.Operator le(java.lang.String column, java.lang.Object value)
 - 
lepublic com.inductiveautomation.ignition.gateway.datasource.query.DBQuery.Operator le(java.lang.String column, java.lang.Object value, SQLType type)
 - 
hasFlagpublic com.inductiveautomation.ignition.gateway.datasource.query.DBQuery.Operator hasFlag(java.lang.String column, java.lang.Object value)
 - 
hasFlagpublic com.inductiveautomation.ignition.gateway.datasource.query.DBQuery.Operator hasFlag(java.lang.String column, java.lang.Object value, SQLType type)
 - 
notFlagpublic com.inductiveautomation.ignition.gateway.datasource.query.DBQuery.Operator notFlag(java.lang.String column, java.lang.Object value)
 - 
notFlagpublic com.inductiveautomation.ignition.gateway.datasource.query.DBQuery.Operator notFlag(java.lang.String column, java.lang.Object value, SQLType type)
 - 
likepublic com.inductiveautomation.ignition.gateway.datasource.query.DBQuery.Operator like(java.lang.String column, java.lang.Object value)
 - 
likepublic com.inductiveautomation.ignition.gateway.datasource.query.DBQuery.Operator like(java.lang.String column, java.lang.Object value, SQLType type)
 - 
isnullpublic com.inductiveautomation.ignition.gateway.datasource.query.DBQuery.Operator isnull(java.lang.String column) 
 - 
isnotnullpublic com.inductiveautomation.ignition.gateway.datasource.query.DBQuery.Operator isnotnull(java.lang.String column) 
 - 
getSqlpublic java.lang.String getSql() 
 - 
getParamspublic DBQuery.Param[] getParams() 
 
- 
 
-