Class JRJdbcQueryExecuter

  • All Implemented Interfaces:
    JRQueryExecuter

    public class JRJdbcQueryExecuter
    extends JRAbstractQueryExecuter
    JDBC query executer for SQL queries.

    This query executer implementation offers built-in support for SQL queries.

    Author:
    Teodor Danciu (teodord@users.sourceforge.net)
    • Field Detail

      • EXCEPTION_MESSAGE_KEY_MULTI_PARAMETERS_CANNOT_CONTAIN_NULL_VALUES

        public static final java.lang.String EXCEPTION_MESSAGE_KEY_MULTI_PARAMETERS_CANNOT_CONTAIN_NULL_VALUES
        See Also:
        Constant Field Values
      • EXCEPTION_MESSAGE_KEY_QUERY_STATEMENT_CANCEL_ERROR

        public static final java.lang.String EXCEPTION_MESSAGE_KEY_QUERY_STATEMENT_CANCEL_ERROR
        See Also:
        Constant Field Values
      • EXCEPTION_MESSAGE_KEY_QUERY_STATEMENT_EXECUTE_ERROR

        public static final java.lang.String EXCEPTION_MESSAGE_KEY_QUERY_STATEMENT_EXECUTE_ERROR
        See Also:
        Constant Field Values
      • EXCEPTION_MESSAGE_KEY_QUERY_STATEMENT_PREPARE_ERROR

        public static final java.lang.String EXCEPTION_MESSAGE_KEY_QUERY_STATEMENT_PREPARE_ERROR
        See Also:
        Constant Field Values
      • EXCEPTION_MESSAGE_KEY_QUERY_STATEMENT_TIMEOUT_LIMIT_EXCEEDED

        public static final java.lang.String EXCEPTION_MESSAGE_KEY_QUERY_STATEMENT_TIMEOUT_LIMIT_EXCEEDED
        See Also:
        Constant Field Values
      • EXCEPTION_MESSAGE_KEY_UNEXPECTED_MULTI_PARAMETER_TYPE

        public static final java.lang.String EXCEPTION_MESSAGE_KEY_UNEXPECTED_MULTI_PARAMETER_TYPE
        See Also:
        Constant Field Values
      • CANONICAL_LANGUAGE

        public static final java.lang.String CANONICAL_LANGUAGE
        See Also:
        Constant Field Values
      • CLAUSE_ID_NOTEQUAL

        public static final java.lang.String CLAUSE_ID_NOTEQUAL
        See Also:
        Constant Field Values
      • CLAUSE_ID_GREATER

        public static final java.lang.String CLAUSE_ID_GREATER
        See Also:
        Constant Field Values
      • CLAUSE_ID_LESS_OR_EQUAL

        public static final java.lang.String CLAUSE_ID_LESS_OR_EQUAL
        See Also:
        Constant Field Values
      • CLAUSE_ID_GREATER_OR_EQUAL

        public static final java.lang.String CLAUSE_ID_GREATER_OR_EQUAL
        See Also:
        Constant Field Values
      • CLAUSE_ID_BETWEEN

        public static final java.lang.String CLAUSE_ID_BETWEEN
        See Also:
        Constant Field Values
      • CLAUSE_ID_BETWEEN_CLOSED

        public static final java.lang.String CLAUSE_ID_BETWEEN_CLOSED
        See Also:
        Constant Field Values
      • CLAUSE_ID_BETWEEN_LEFT_CLOSED

        public static final java.lang.String CLAUSE_ID_BETWEEN_LEFT_CLOSED
        See Also:
        Constant Field Values
      • CLAUSE_ID_BETWEEN_RIGHT_CLOSED

        public static final java.lang.String CLAUSE_ID_BETWEEN_RIGHT_CLOSED
        See Also:
        Constant Field Values
      • TYPE_FORWARD_ONLY

        protected static final java.lang.String TYPE_FORWARD_ONLY
        See Also:
        Constant Field Values
      • TYPE_SCROLL_INSENSITIVE

        protected static final java.lang.String TYPE_SCROLL_INSENSITIVE
        See Also:
        Constant Field Values
      • TYPE_SCROLL_SENSITIVE

        protected static final java.lang.String TYPE_SCROLL_SENSITIVE
        See Also:
        Constant Field Values
      • CONCUR_READ_ONLY

        protected static final java.lang.String CONCUR_READ_ONLY
        See Also:
        Constant Field Values
      • CONCUR_UPDATABLE

        protected static final java.lang.String CONCUR_UPDATABLE
        See Also:
        Constant Field Values
      • HOLD_CURSORS_OVER_COMMIT

        protected static final java.lang.String HOLD_CURSORS_OVER_COMMIT
        See Also:
        Constant Field Values
      • CLOSE_CURSORS_AT_COMMIT

        protected static final java.lang.String CLOSE_CURSORS_AT_COMMIT
        See Also:
        Constant Field Values
      • CACHED_ROWSET_CLASS

        protected static final java.lang.String CACHED_ROWSET_CLASS
        See Also:
        Constant Field Values
      • PROCEDURE_CALL_PATTERN

        protected static final java.util.regex.Pattern PROCEDURE_CALL_PATTERN
      • connection

        protected java.sql.Connection connection
      • statement

        protected java.sql.PreparedStatement statement
        The statement used to fire the query.
      • resultSet

        protected java.sql.ResultSet resultSet
    • Method Detail

      • getCanonicalQueryLanguage

        protected java.lang.String getCanonicalQueryLanguage()
        Description copied from class: JRAbstractQueryExecuter
        Returns a canonical query language for this query executer implementation.

        The canonical language is used to retrieve extensions for the query executer.

        The default implementation returns the runtime query language used in the dataset, but query executer implementations should override this method and return a fixed language.

        Overrides:
        getCanonicalQueryLanguage in class JRAbstractQueryExecuter
        Returns:
        a canonical query language
      • setTimeZone

        protected void setTimeZone()
      • resolveTimeZone

        protected java.util.TimeZone resolveTimeZone​(java.lang.String timezoneId)
      • isProcedureCall

        protected boolean isProcedureCall​(java.lang.String queryString)
                                   throws java.sql.SQLException
        Throws:
        java.sql.SQLException
      • initProcedureCall

        protected void initProcedureCall​(java.sql.CallableStatement callableStatement)
                                  throws java.sql.SQLException
        Throws:
        java.sql.SQLException
      • getResultSet

        public java.sql.ResultSet getResultSet()
      • setStatementParameter

        protected void setStatementParameter​(int parameterIndex,
                                             java.lang.String parameterName)
                                      throws java.sql.SQLException
        Throws:
        java.sql.SQLException
      • setStatementMultiParameters

        protected int setStatementMultiParameters​(int parameterIndex,
                                                  java.lang.String parameterName,
                                                  boolean ignoreNulls)
                                           throws java.sql.SQLException
        Throws:
        java.sql.SQLException
      • setStatementMultiParameter

        protected void setStatementMultiParameter​(int parameterIndex,
                                                  java.lang.String parameterName,
                                                  int valueIndex,
                                                  java.lang.Object value,
                                                  JRPropertiesHolder properties)
                                           throws java.sql.SQLException
        Throws:
        java.sql.SQLException
      • setStatementParameter

        protected void setStatementParameter​(int parameterIndex,
                                             java.lang.Class<?> parameterType,
                                             java.lang.Object parameterValue,
                                             JRPropertiesHolder properties)
                                      throws java.sql.SQLException
        Throws:
        java.sql.SQLException
      • setTimestamp

        protected void setTimestamp​(int parameterIndex,
                                    java.lang.Object parameterValue,
                                    JRPropertiesHolder properties)
                             throws java.sql.SQLException
        Throws:
        java.sql.SQLException
      • setTime

        protected void setTime​(int parameterIndex,
                               java.lang.Object parameterValue,
                               JRPropertiesHolder properties)
                        throws java.sql.SQLException
        Throws:
        java.sql.SQLException
      • setDate

        protected void setDate​(int parameterIndex,
                               java.lang.Object parameterValue,
                               JRPropertiesHolder properties)
                        throws java.sql.SQLException
        Throws:
        java.sql.SQLException
      • getParameterCalendar

        protected java.util.Calendar getParameterCalendar​(JRPropertiesHolder properties)
      • close

        public void close()
        Description copied from interface: JRQueryExecuter
        Closes resources kept open during the data source iteration.

        This method is called after the report is filled or the dataset is iterated. If a resource is not needed after the data source has been created, it should be released at the end of createDatasource.

      • closeStatement

        protected void closeStatement()
      • cancelQuery

        public boolean cancelQuery()
                            throws JRException
        Description copied from interface: JRQueryExecuter
        Cancels the query if it's currently running.

        This method will be called from a different thread if the client decides to cancel the filling process.

        Returns:
        true if and only if the query was running and it has been canceled
        Throws:
        JRException
      • getResultSetType

        protected static int getResultSetType​(java.lang.String type)
      • getConcurrency

        protected static int getConcurrency​(java.lang.String concurrency)
      • getHoldability

        protected static int getHoldability​(java.lang.String holdability,
                                            java.sql.Connection connection)
                                     throws java.sql.SQLException
        Throws:
        java.sql.SQLException