Class JRJdbcQueryExecuter
- java.lang.Object
-
- net.sf.jasperreports.engine.query.JRAbstractQueryExecuter
-
- net.sf.jasperreports.engine.query.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)
-
-
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
-
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
Constructors Constructor Description JRJdbcQueryExecuter(JasperReportsContext jasperReportsContext, JRDataset dataset, Map<String,? extends JRValueParameter> parameters)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
cancelQuery()
Cancels the query if it's currently running.void
close()
Closes resources kept open during the data source iteration.protected void
closeStatement()
JRDataSource
createDatasource()
Executes the query and creates aJRDataSource
out of the result.protected void
createStatement()
protected String
getCanonicalQueryLanguage()
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.ResultSet
getResultSet()
protected static int
getResultSetType(String type)
protected void
initProcedureCall(CallableStatement callableStatement)
protected boolean
isProcedureCall(String queryString)
protected void
registerFunctions()
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
setTimeZone()
-
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 Detail
-
EXCEPTION_MESSAGE_KEY_MULTI_PARAMETERS_CANNOT_CONTAIN_NULL_VALUES
public static final 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 String EXCEPTION_MESSAGE_KEY_QUERY_STATEMENT_CANCEL_ERROR
- See Also:
- Constant Field Values
-
EXCEPTION_MESSAGE_KEY_QUERY_STATEMENT_EXECUTE_ERROR
public static final String EXCEPTION_MESSAGE_KEY_QUERY_STATEMENT_EXECUTE_ERROR
- See Also:
- Constant Field Values
-
EXCEPTION_MESSAGE_KEY_QUERY_STATEMENT_PREPARE_ERROR
public static final String EXCEPTION_MESSAGE_KEY_QUERY_STATEMENT_PREPARE_ERROR
- See Also:
- Constant Field Values
-
EXCEPTION_MESSAGE_KEY_QUERY_STATEMENT_TIMEOUT_LIMIT_EXCEEDED
public static final String EXCEPTION_MESSAGE_KEY_QUERY_STATEMENT_TIMEOUT_LIMIT_EXCEEDED
- See Also:
- Constant Field Values
-
EXCEPTION_MESSAGE_KEY_UNEXPECTED_MULTI_PARAMETER_TYPE
public static final String EXCEPTION_MESSAGE_KEY_UNEXPECTED_MULTI_PARAMETER_TYPE
- See Also:
- Constant Field Values
-
CANONICAL_LANGUAGE
public static final String CANONICAL_LANGUAGE
- See Also:
- Constant Field Values
-
CLAUSE_ID_IN
public static final String CLAUSE_ID_IN
- See Also:
- Constant Field Values
-
CLAUSE_ID_NOTIN
public static final String CLAUSE_ID_NOTIN
- See Also:
- Constant Field Values
-
CLAUSE_ID_EQUAL
public static final String CLAUSE_ID_EQUAL
- See Also:
- Constant Field Values
-
CLAUSE_ID_NOTEQUAL
public static final String CLAUSE_ID_NOTEQUAL
- See Also:
- Constant Field Values
-
CLAUSE_ID_LESS
public static final String CLAUSE_ID_LESS
- See Also:
- Constant Field Values
-
CLAUSE_ID_GREATER
public static final String CLAUSE_ID_GREATER
- See Also:
- Constant Field Values
-
CLAUSE_ID_LESS_OR_EQUAL
public static final String CLAUSE_ID_LESS_OR_EQUAL
- See Also:
- Constant Field Values
-
CLAUSE_ID_GREATER_OR_EQUAL
public static final String CLAUSE_ID_GREATER_OR_EQUAL
- See Also:
- Constant Field Values
-
CLAUSE_ID_BETWEEN
public static final String CLAUSE_ID_BETWEEN
- See Also:
- Constant Field Values
-
CLAUSE_ID_BETWEEN_CLOSED
public static final String CLAUSE_ID_BETWEEN_CLOSED
- See Also:
- Constant Field Values
-
CLAUSE_ID_BETWEEN_LEFT_CLOSED
public static final String CLAUSE_ID_BETWEEN_LEFT_CLOSED
- See Also:
- Constant Field Values
-
CLAUSE_ID_BETWEEN_RIGHT_CLOSED
public static final String CLAUSE_ID_BETWEEN_RIGHT_CLOSED
- See Also:
- Constant Field Values
-
TYPE_FORWARD_ONLY
protected static final String TYPE_FORWARD_ONLY
- See Also:
- Constant Field Values
-
TYPE_SCROLL_INSENSITIVE
protected static final String TYPE_SCROLL_INSENSITIVE
- See Also:
- Constant Field Values
-
TYPE_SCROLL_SENSITIVE
protected static final String TYPE_SCROLL_SENSITIVE
- See Also:
- Constant Field Values
-
CONCUR_READ_ONLY
protected static final String CONCUR_READ_ONLY
- See Also:
- Constant Field Values
-
CONCUR_UPDATABLE
protected static final String CONCUR_UPDATABLE
- See Also:
- Constant Field Values
-
HOLD_CURSORS_OVER_COMMIT
protected static final String HOLD_CURSORS_OVER_COMMIT
- See Also:
- Constant Field Values
-
CLOSE_CURSORS_AT_COMMIT
protected static final String CLOSE_CURSORS_AT_COMMIT
- See Also:
- Constant Field Values
-
CACHED_ROWSET_CLASS
protected static final String CACHED_ROWSET_CLASS
- See Also:
- Constant Field Values
-
PROCEDURE_CALL_PATTERN
protected static final Pattern PROCEDURE_CALL_PATTERN
-
connection
protected Connection connection
-
statement
protected PreparedStatement statement
The statement used to fire the query.
-
resultSet
protected ResultSet resultSet
-
-
Constructor Detail
-
JRJdbcQueryExecuter
public JRJdbcQueryExecuter(JasperReportsContext jasperReportsContext, JRDataset dataset, Map<String,? extends JRValueParameter> parameters)
-
-
Method Detail
-
registerFunctions
protected void registerFunctions()
Registers built-inclause functions
.
-
getCanonicalQueryLanguage
protected 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 classJRAbstractQueryExecuter
- Returns:
- a canonical query language
-
setTimeZone
protected void setTimeZone()
-
getParameterReplacement
protected String getParameterReplacement(String parameterName)
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:
JRQueryChunk.TYPE_PARAMETER
-
createDatasource
public JRDataSource createDatasource() throws JRException
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
protected void createStatement() throws JRException
- Throws:
JRException
-
isProcedureCall
protected boolean isProcedureCall(String queryString) throws SQLException
- Throws:
SQLException
-
initProcedureCall
protected void initProcedureCall(CallableStatement callableStatement) throws SQLException
- Throws:
SQLException
-
getResultSet
public ResultSet getResultSet()
-
setStatementParameter
protected void setStatementParameter(int parameterIndex, String parameterName) throws SQLException
- 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
protected 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 ofcreateDatasource
.
-
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(String type)
-
getConcurrency
protected static int getConcurrency(String concurrency)
-
getHoldability
protected static int getHoldability(String holdability, Connection connection) throws SQLException
- Throws:
SQLException
-
-