Interface SqlQuery

All Known Implementing Classes:
JdbcQuery

public interface SqlQuery
The SQL Engine query contract definition. In fact it's an adapter or a proxy to an internal stuff in one of the stacks on top of which the SQL Processor works.

For the concrete implementation please see for example JdbcQuery.

For more info please see the Tutorials.

Author:
Vladimir Hudec
  • Method Details

    • getQuery

      Object getQuery()
      Returns the internal representation of this query. This implementation depends on the stack on top of which the SQL Processor works. It can be for example the Hibernate SQLQuery instance.
      Returns:
      the internal representation of this query
    • setSqlControl

      SqlQuery setSqlControl(SqlControl sqlControl)
      Sets the compound parameters controlling the META SQL execution.
      Parameters:
      sqlControl - the compound parameters controlling the META SQL execution
      Returns:
      this instance to enable the methods chaining
    • setOrdered

      SqlQuery setOrdered(boolean ordered)
      Sets the indicator the SQL output is sorted.
      Parameters:
      ordered - the indicator the SQL output is sorted
      Returns:
      this instance to enable the methods chaining
    • list

      Returns the query results as a List. If the query contains multiple results per row, the results are returned in an instance of Object[].
      Parameters:
      runtime - the public runtime context
      Returns:
      the result list
      Throws:
      SqlProcessorException - in the case of any problem in ORM or JDBC stack
    • unique

      Convenience method to return a single instance that matches the query, or null if the query returns no results.
      Parameters:
      runtime - the public runtime context
      Returns:
      the single result or null
      Throws:
      SqlProcessorException - in the case of any problem in ORM or JDBC stack
    • query

      int query(SqlRuntimeContext runtime, SqlQuery.SqlQueryRowProcessor sqlQueryRowProcessor) throws SqlProcessorException
      Process the query output using the SqlQuery.SqlQueryRowProcessor.
      Parameters:
      runtime - the public runtime context
      sqlQueryRowProcessor - the callback designated to process every database row
      Returns:
      the total number of processed database rows
      Throws:
      SqlProcessorException - in the case of any problem in ORM or JDBC stack
    • update

      int update(SqlRuntimeContext runtime) throws SqlProcessorException
      Executes the update, delete or insert statement.
      Parameters:
      runtime - the public runtime context
      Returns:
      the number of affected rows
      Throws:
      SqlProcessorException - in the case of any problem in ORM or JDBC stack
    • callList

      Returns the stored procedure execution results as a List. If the query contains multiple results per row, the results are returned in an instance of Object[]. It's based on the CallableStatement invocation.
      Parameters:
      runtime - the public runtime context
      Returns:
      the result list
      Throws:
      SqlProcessorException - in the case of any problem in ORM or JDBC stack
    • callUnique

      Convenience method to return a single instance that matches the stored procedure execution, or null if the stored procedure execution returns no results. It's based on the CallableStatement invocation.
      Parameters:
      runtime - the public runtime context
      Returns:
      the single result or null
      Throws:
      SqlProcessorException - in the case of any problem in ORM or JDBC stack
    • callUpdate

      int callUpdate(SqlRuntimeContext runtime) throws SqlProcessorException
      Executes the update, delete, insert statement or other statements in the stored procedure, which don't return the result set. It's based on the CallableStatement invocation.
      Parameters:
      runtime - the public runtime context
      Returns:
      the number of affected rows
      Throws:
      SqlProcessorException - in the case of any problem in ORM or JDBC stack
    • callFunction

      Map<String,Object> callFunction() throws SqlProcessorException
      Executes the statements in the stored function, which return value of any type but the result set. It's based on the CallableStatement invocation.
      Returns:
      the result of the stored function invocation
      Throws:
      SqlProcessorException - in the case of any problem in ORM or JDBC stack
    • addScalar

      SqlQuery addScalar(String columnAlias)
      Declares a scalar query result, which is an SQL query execution output value.
      Parameters:
      columnAlias - the name of the database column or the alias in the result set
      Returns:
      this instance to enable the methods chaining
    • addScalar

      SqlQuery addScalar(String columnAlias, Object type, Class<?>... moreTypes)
      Declares a scalar query result, which is an SQL query execution output value.
      Parameters:
      columnAlias - the name of the database column or the alias in the result set
      type - the (META) type of the parameter
      Returns:
      this instance to enable the methods chaining
    • setParameter

      SqlQuery setParameter(String name, Object val) throws SqlProcessorException
      Binds a value to a named query parameter.
      Parameters:
      name - the name of the parameter
      val - the not-null parameter value
      Returns:
      this instance to enable the methods chaining
      Throws:
      SqlProcessorException - in the case of any problem in ORM or JDBC stack
    • setParameter

      SqlQuery setParameter(String name, Object val, Object type, Class<?>... moreTypes) throws SqlProcessorException
      Binds a value to a named query parameter.
      Parameters:
      name - the name of the parameter
      val - the possibly-null parameter value
      type - the (META) type of the parameter
      Returns:
      this instance to enable the methods chaining
      Throws:
      SqlProcessorException - in the case of any problem in ORM or JDBC stack
    • setParameterList

      SqlQuery setParameterList(String name, Object[] vals) throws SqlProcessorException
      Binds multiple values to a named query parameter. This is useful for binding a list of values to the query fragment in (:value_list).
      Parameters:
      name - the name of the parameter
      vals - a collection of values
      Returns:
      this instance to enable the methods chaining
      Throws:
      SqlProcessorException - in the case of any problem in ORM or JDBC stack
    • setParameterList

      SqlQuery setParameterList(String name, Object[] vals, Object type, Class<?>... moreTypes) throws SqlProcessorException
      Binds multiple values to a named query parameter. This is useful for binding a list of values to the query fragment in (:value_list).
      Parameters:
      name - the name of the parameter
      vals - a collection of values
      type - the (META) type of the parameter
      Returns:
      this instance to enable the methods chaining
      Throws:
      SqlProcessorException - in the case of any problem in ORM or JDBC stack
    • executeBatch

      int[] executeBatch(String[] statements) throws SqlProcessorException
      Submits a batch of commands to the database for execution and if all commands execute successfully, returns an array of update counts.
      Parameters:
      statements - SQL statements to be executed in batch
      Returns:
      an array of update counts containing one element for each command in the batch
      Throws:
      SqlProcessorException - in the case of any problem in ORM or JDBC stack
    • setLogError

      void setLogError(boolean logError)
      Sets an indicator the failed SQL command should be logged
      Parameters:
      logError - an indicator the failed SQL command should be logged