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 Modifier and Type Field Description protected static java.lang.StringCACHED_ROWSET_CLASSstatic java.lang.StringCANONICAL_LANGUAGEstatic java.lang.StringCLAUSE_ID_BETWEENstatic java.lang.StringCLAUSE_ID_BETWEEN_CLOSEDstatic java.lang.StringCLAUSE_ID_BETWEEN_LEFT_CLOSEDstatic java.lang.StringCLAUSE_ID_BETWEEN_RIGHT_CLOSEDstatic java.lang.StringCLAUSE_ID_EQUALstatic java.lang.StringCLAUSE_ID_GREATERstatic java.lang.StringCLAUSE_ID_GREATER_OR_EQUALstatic java.lang.StringCLAUSE_ID_INstatic java.lang.StringCLAUSE_ID_LESSstatic java.lang.StringCLAUSE_ID_LESS_OR_EQUALstatic java.lang.StringCLAUSE_ID_NOTEQUALstatic java.lang.StringCLAUSE_ID_NOTINprotected static java.lang.StringCLOSE_CURSORS_AT_COMMITprotected static java.lang.StringCONCUR_READ_ONLYprotected static java.lang.StringCONCUR_UPDATABLEprotected java.sql.Connectionconnectionstatic java.lang.StringEXCEPTION_MESSAGE_KEY_MULTI_PARAMETERS_CANNOT_CONTAIN_NULL_VALUESstatic java.lang.StringEXCEPTION_MESSAGE_KEY_QUERY_STATEMENT_CANCEL_ERRORstatic java.lang.StringEXCEPTION_MESSAGE_KEY_QUERY_STATEMENT_EXECUTE_ERRORstatic java.lang.StringEXCEPTION_MESSAGE_KEY_QUERY_STATEMENT_PREPARE_ERRORstatic java.lang.StringEXCEPTION_MESSAGE_KEY_QUERY_STATEMENT_TIMEOUT_LIMIT_EXCEEDEDstatic java.lang.StringEXCEPTION_MESSAGE_KEY_UNEXPECTED_MULTI_PARAMETER_TYPEprotected static java.lang.StringHOLD_CURSORS_OVER_COMMITprotected static java.util.regex.PatternPROCEDURE_CALL_PATTERNprotected java.sql.ResultSetresultSetprotected java.sql.PreparedStatementstatementThe statement used to fire the query.protected static java.lang.StringTYPE_FORWARD_ONLYprotected static java.lang.StringTYPE_SCROLL_INSENSITIVEprotected static java.lang.StringTYPE_SCROLL_SENSITIVE-
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, java.util.Map<java.lang.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 java.lang.StringgetCanonicalQueryLanguage()Returns a canonical query language for this query executer implementation.protected static intgetConcurrency(java.lang.String concurrency)protected static intgetHoldability(java.lang.String holdability, java.sql.Connection connection)protected java.util.CalendargetParameterCalendar(JRPropertiesHolder properties)protected java.lang.StringgetParameterReplacement(java.lang.String parameterName)Returns the replacement text for a query parameter.java.sql.ResultSetgetResultSet()protected static intgetResultSetType(java.lang.String type)protected voidinitProcedureCall(java.sql.CallableStatement callableStatement)protected booleanisProcedureCall(java.lang.String queryString)protected voidregisterFunctions()Registers built-inclause functions.protected java.util.TimeZoneresolveTimeZone(java.lang.String timezoneId)protected voidsetDate(int parameterIndex, java.lang.Object parameterValue, JRPropertiesHolder properties)protected voidsetStatementMultiParameter(int parameterIndex, java.lang.String parameterName, int valueIndex, java.lang.Object value, JRPropertiesHolder properties)protected intsetStatementMultiParameters(int parameterIndex, java.lang.String parameterName, boolean ignoreNulls)protected voidsetStatementParameter(int parameterIndex, java.lang.Class<?> parameterType, java.lang.Object parameterValue, JRPropertiesHolder properties)protected voidsetStatementParameter(int parameterIndex, java.lang.String parameterName)protected voidsetTime(int parameterIndex, java.lang.Object parameterValue, JRPropertiesHolder properties)protected voidsetTimestamp(int parameterIndex, java.lang.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 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_IN
public static final java.lang.String CLAUSE_ID_IN
- See Also:
- Constant Field Values
-
CLAUSE_ID_NOTIN
public static final java.lang.String CLAUSE_ID_NOTIN
- See Also:
- Constant Field Values
-
CLAUSE_ID_EQUAL
public static final java.lang.String CLAUSE_ID_EQUAL
- See Also:
- Constant Field Values
-
CLAUSE_ID_NOTEQUAL
public static final java.lang.String CLAUSE_ID_NOTEQUAL
- See Also:
- Constant Field Values
-
CLAUSE_ID_LESS
public static final java.lang.String CLAUSE_ID_LESS
- 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
-
-
Constructor Detail
-
JRJdbcQueryExecuter
public JRJdbcQueryExecuter(JasperReportsContext jasperReportsContext, JRDataset dataset, java.util.Map<java.lang.String,? extends JRValueParameter> parameters)
-
-
Method Detail
-
registerFunctions
protected void registerFunctions()
Registers built-inclause functions.
-
getCanonicalQueryLanguage
protected java.lang.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()
-
resolveTimeZone
protected java.util.TimeZone resolveTimeZone(java.lang.String timezoneId)
-
getParameterReplacement
protected java.lang.String getParameterReplacement(java.lang.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(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: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(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
-
-