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 booleancancelQuery()Cancels the query if it's currently running.voidclose()Closes resources kept open during the data source iteration.protected voidcloseStatement()JRDataSourcecreateDatasource()Executes the query and creates aJRDataSourceout of the result.protected voidcreateStatement()protected StringgetCanonicalQueryLanguage()Returns a canonical query language for this query executer implementation.protected static intgetConcurrency(String concurrency)protected static intgetHoldability(String holdability, Connection connection)protected CalendargetParameterCalendar(JRPropertiesHolder properties)protected StringgetParameterReplacement(String parameterName)Returns the replacement text for a query parameter.ResultSetgetResultSet()protected static intgetResultSetType(String type)protected voidinitProcedureCall(CallableStatement callableStatement)protected booleanisProcedureCall(String queryString)protected voidregisterFunctions()Registers built-inclause functions.protected TimeZoneresolveTimeZone(String timezoneId)protected voidsetDate(int parameterIndex, Object parameterValue, JRPropertiesHolder properties)protected voidsetStatementMultiParameter(int parameterIndex, String parameterName, int valueIndex, Object value, JRPropertiesHolder properties)protected intsetStatementMultiParameters(int parameterIndex, String parameterName, boolean ignoreNulls)protected voidsetStatementParameter(int parameterIndex, Class<?> parameterType, Object parameterValue, JRPropertiesHolder properties)protected voidsetStatementParameter(int parameterIndex, String parameterName)protected voidsetTime(int parameterIndex, Object parameterValue, JRPropertiesHolder properties)protected voidsetTimestamp(int parameterIndex, Object parameterValue, JRPropertiesHolder properties)protected voidsetTimeZone()-
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, getParameter, 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:JRAbstractQueryExecuterReturns 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:
getCanonicalQueryLanguagein classJRAbstractQueryExecuter- Returns:
- a canonical query language
-
setTimeZone
protected void setTimeZone()
-
getParameterReplacement
protected String getParameterReplacement(String parameterName)
Description copied from class:JRAbstractQueryExecuterReturns the replacement text for a query parameter.- Specified by:
getParameterReplacementin 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:JRQueryExecuterExecutes the query and creates aJRDataSourceout of the result.- Returns:
- a
JRDataSourcewrapping 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:JRQueryExecuterCloses 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 JRExceptionDescription copied from interface:JRQueryExecuterCancels 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:
trueif 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
-
-