Class JRJdbcQueryExecuter
java.lang.Object
net.sf.jasperreports.engine.query.JRAbstractQueryExecuter
net.sf.jasperreports.engine.query.JRJdbcQueryExecuter
- All Implemented Interfaces:
JRQueryExecuter
JDBC query executer for SQL queries.
This query executer implementation offers built-in support for SQL queries.
- Author:
- Teodor Danciu (teodord@users.sourceforge.net)
-
Nested Class Summary
Nested classes/interfaces inherited from class net.sf.jasperreports.engine.query.JRAbstractQueryExecuter
JRAbstractQueryExecuter.QueryParameter, JRAbstractQueryExecuter.QueryParameterEntry, JRAbstractQueryExecuter.QueryParameterVisitor, JRAbstractQueryExecuter.ValuedQueryParameter, JRAbstractQueryExecuter.VisitExceptionWrapper
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
protected static final String
protected static final String
protected static final String
protected Connection
static final String
static final String
static final String
static final String
static final String
static final String
protected static final String
protected ResultSet
protected PreparedStatement
The statement used to fire the query.protected static final String
protected static final String
protected static final String
Fields inherited from class net.sf.jasperreports.engine.query.JRAbstractQueryExecuter
clauseFunctions, dataset, EXCEPTION_MESSAGE_KEY_NUMERIC_TYPE_REQUIRED, EXCEPTION_MESSAGE_KEY_PARAMETER_NOT_FOUND, EXCEPTION_MESSAGE_KEY_QUERY_CLAUSE_CIRCULARLY_NESTED_PARAMETER, EXCEPTION_MESSAGE_KEY_QUERY_CLAUSE_ID_FIRST_TOKEN_MISSING, EXCEPTION_MESSAGE_KEY_QUERY_CLAUSE_NOT_FOUND, EXCEPTION_MESSAGE_KEY_UNSUPPORTED_PARAMETER_TYPE, GET_COLLECTED
-
Constructor Summary
ConstructorsConstructorDescriptionJRJdbcQueryExecuter
(JasperReportsContext jasperReportsContext, JRDataset dataset, Map<String, ? extends JRValueParameter> parameters) -
Method Summary
Modifier and TypeMethodDescriptionboolean
Cancels the query if it's currently running.void
close()
Closes resources kept open during the data source iteration.protected void
Executes the query and creates aJRDataSource
out of the result.protected void
protected String
Returns a canonical query language for this query executer implementation.protected static int
getConcurrency
(String concurrency) protected static int
getHoldability
(String holdability, Connection connection) protected Calendar
getParameterCalendar
(JRPropertiesHolder properties) protected String
getParameterReplacement
(String parameterName) Returns the replacement text for a query parameter.protected static int
getResultSetType
(String type) protected boolean
isProcedureCall
(String queryString) protected void
Registers built-inclause functions
.protected TimeZone
resolveTimeZone
(String timezoneId) protected void
setDate
(int parameterIndex, Object parameterValue, JRPropertiesHolder properties) protected void
setStatementMultiParameter
(int parameterIndex, String parameterName, int valueIndex, Object value, JRPropertiesHolder properties) protected int
setStatementMultiParameters
(int parameterIndex, String parameterName, boolean ignoreNulls) protected void
setStatementParameter
(int parameterIndex, Class<?> parameterType, Object parameterValue, JRPropertiesHolder properties) protected void
setStatementParameter
(int parameterIndex, String parameterName) protected void
setTime
(int parameterIndex, Object parameterValue, JRPropertiesHolder properties) protected void
setTimestamp
(int parameterIndex, Object parameterValue, JRPropertiesHolder properties) protected void
Methods inherited from class net.sf.jasperreports.engine.query.JRAbstractQueryExecuter
addQueryMultiParameters, addQueryMultiParameters, addQueryParameter, addQueryParameter, appendClauseChunk, appendParameterChunk, appendParameterClauseChunk, appendQueryChunk, appendTextChunk, applyClause, checkParameter, findExtensionQueryFunction, getBooleanParameter, getBooleanParameter, getBooleanParameterOrProperty, getBooleanParameterOrProperty, getCollectedParameterNames, getCollectedParameters, getIntegerParameter, getIntegerParameter, getIntegerParameterOrProperty, getIntegerParameterOrProperty, getJasperReportsContext, getParameterValue, getParameterValue, getPropertiesUtil, getQueryExecutionContext, getQueryString, getRepositoryContext, getStringParameter, getStringParameterOrProperty, getValueParameter, getValueParameter, parameterHasValue, parseQuery, registerClauseFunction, resolveFunction, unregisterClauseFunction, visitQueryParameters
-
Field Details
-
EXCEPTION_MESSAGE_KEY_MULTI_PARAMETERS_CANNOT_CONTAIN_NULL_VALUES
- See Also:
-
EXCEPTION_MESSAGE_KEY_QUERY_STATEMENT_CANCEL_ERROR
- See Also:
-
EXCEPTION_MESSAGE_KEY_QUERY_STATEMENT_EXECUTE_ERROR
- See Also:
-
EXCEPTION_MESSAGE_KEY_QUERY_STATEMENT_PREPARE_ERROR
- See Also:
-
EXCEPTION_MESSAGE_KEY_QUERY_STATEMENT_TIMEOUT_LIMIT_EXCEEDED
- See Also:
-
EXCEPTION_MESSAGE_KEY_UNEXPECTED_MULTI_PARAMETER_TYPE
- See Also:
-
CANONICAL_LANGUAGE
- See Also:
-
CLAUSE_ID_IN
- See Also:
-
CLAUSE_ID_NOTIN
- See Also:
-
CLAUSE_ID_EQUAL
- See Also:
-
CLAUSE_ID_NOTEQUAL
- See Also:
-
CLAUSE_ID_LESS
- See Also:
-
CLAUSE_ID_GREATER
- See Also:
-
CLAUSE_ID_LESS_OR_EQUAL
- See Also:
-
CLAUSE_ID_GREATER_OR_EQUAL
- See Also:
-
CLAUSE_ID_BETWEEN
- See Also:
-
CLAUSE_ID_BETWEEN_CLOSED
- See Also:
-
CLAUSE_ID_BETWEEN_LEFT_CLOSED
- See Also:
-
CLAUSE_ID_BETWEEN_RIGHT_CLOSED
- See Also:
-
TYPE_FORWARD_ONLY
- See Also:
-
TYPE_SCROLL_INSENSITIVE
- See Also:
-
TYPE_SCROLL_SENSITIVE
- See Also:
-
CONCUR_READ_ONLY
- See Also:
-
CONCUR_UPDATABLE
- See Also:
-
HOLD_CURSORS_OVER_COMMIT
- See Also:
-
CLOSE_CURSORS_AT_COMMIT
- See Also:
-
CACHED_ROWSET_CLASS
- See Also:
-
connection
-
statement
The statement used to fire the query. -
resultSet
-
-
Constructor Details
-
JRJdbcQueryExecuter
public JRJdbcQueryExecuter(JasperReportsContext jasperReportsContext, JRDataset dataset, Map<String, ? extends JRValueParameter> parameters)
-
-
Method Details
-
registerFunctions
protected void registerFunctions()Registers built-inclause functions
.- See Also:
-
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 classJRAbstractQueryExecuter
- Returns:
- a canonical query language
-
setTimeZone
protected void setTimeZone() -
resolveTimeZone
-
getParameterReplacement
Description copied from class:JRAbstractQueryExecuter
Returns the replacement text for a query parameter.- Specified by:
getParameterReplacement
in classJRAbstractQueryExecuter
- Parameters:
parameterName
- the parameter name- Returns:
- the replacement text
- See Also:
-
createDatasource
Description copied from interface:JRQueryExecuter
Executes the query and creates aJRDataSource
out of the result.- Returns:
- a
JRDataSource
wrapping the query execution result. - Throws:
JRException
-
createStatement
- Throws:
JRException
-
isProcedureCall
- Throws:
SQLException
-
getResultSet
-
setStatementParameter
- Throws:
SQLException
-
setStatementMultiParameters
protected int setStatementMultiParameters(int parameterIndex, String parameterName, boolean ignoreNulls) throws SQLException - Throws:
SQLException
-
setStatementMultiParameter
protected void setStatementMultiParameter(int parameterIndex, String parameterName, int valueIndex, Object value, JRPropertiesHolder properties) throws SQLException - Throws:
SQLException
-
setStatementParameter
protected void setStatementParameter(int parameterIndex, Class<?> parameterType, Object parameterValue, JRPropertiesHolder properties) throws SQLException - Throws:
SQLException
-
setTimestamp
protected void setTimestamp(int parameterIndex, Object parameterValue, JRPropertiesHolder properties) throws SQLException - Throws:
SQLException
-
setTime
protected void setTime(int parameterIndex, Object parameterValue, JRPropertiesHolder properties) throws SQLException - Throws:
SQLException
-
setDate
protected void setDate(int parameterIndex, Object parameterValue, JRPropertiesHolder properties) throws SQLException - Throws:
SQLException
-
getParameterCalendar
-
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 ofcreateDatasource
. -
closeStatement
protected void closeStatement() -
cancelQuery
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
-
getConcurrency
-
getHoldability
- Throws:
SQLException
-