Package net.sf.jasperreports.engine
Class JRResultSetDataSource
- java.lang.Object
-
- net.sf.jasperreports.engine.JRResultSetDataSource
-
- All Implemented Interfaces:
JRDataSource
public class JRResultSetDataSource extends Object implements JRDataSource
This is a default implementation of theJRDataSourceinterface. Since most reports are generated using data from a relational database, JasperReports includes by default this implementation that wraps ajava.sql.ResultSetobject.This class can be instantiated intentionally to wrap already loaded result sets before passing them to the report-filling routines, but it is also used by the reporting engine to wrap the data retrieved from the database after having executed the report query (if present) through JDBC.
- Author:
- Teodor Danciu (teodord@users.sourceforge.net)
-
-
Field Summary
Fields Modifier and Type Field Description static StringEXCEPTION_MESSAGE_KEY_RESULT_SET_CLOB_VALUE_READ_FAILUREstatic StringEXCEPTION_MESSAGE_KEY_RESULT_SET_COLUMN_INDEX_OUT_OF_RANGEstatic StringEXCEPTION_MESSAGE_KEY_RESULT_SET_FIELD_VALUE_NOT_RETRIEVEDstatic StringEXCEPTION_MESSAGE_KEY_RESULT_SET_METADATA_NOT_RETRIEVEDstatic StringEXCEPTION_MESSAGE_KEY_RESULT_SET_NEXT_RECORD_NOT_RETRIEVEDstatic StringEXCEPTION_MESSAGE_KEY_RESULT_SET_UNKNOWN_COLUMN_LABELstatic StringEXCEPTION_MESSAGE_KEY_RESULT_SET_UNKNOWN_COLUMN_NAMEstatic StringINDEXED_COLUMN_PREFIXstatic StringPROPERTY_FIELD_COLUMN_INDEXProperty specifying the result set column index for the dataset field.static StringPROPERTY_FIELD_COLUMN_LABELProperty specifying the result set column label for the dataset field.static StringPROPERTY_FIELD_COLUMN_NAMEProperty specifying the result set column name for the dataset field.
-
Constructor Summary
Constructors Constructor Description JRResultSetDataSource(ResultSet resultSet)JRResultSetDataSource(JasperReportsContext jasperReportsContext, ResultSet resultSet)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected StringclobToString(Clob clob)protected CalendarcreateFieldCalendar(JRField field)protected CharArrayReadergetArrayReader(Reader reader, long size)protected CalendargetFieldCalendar(JRField field)ObjectgetFieldValue(JRField field)Gets the field value for the current position.ResultSetgetResultSet()Access the result set that this data source is based on.booleannext()Tries to position the cursor on the next element in the data source.protected byte[]readBytes(InputStream is, long size)protected byte[]readBytes(Integer columnIndex)protected ObjectreadDate(Integer columnIndex, JRField field)protected ObjectreadTime(Integer columnIndex, JRField field)protected ObjectreadTimestamp(Integer columnIndex, JRField field)protected TimeZoneresolveTimeZone(String timezoneId)protected IntegersearchColumnByIndex(String index)protected IntegersearchColumnByIndex(JRField field)protected IntegersearchColumnByLabel(String label)protected IntegersearchColumnByLabel(JRField field)protected IntegersearchColumnByName(String name)protected IntegersearchColumnByName(JRField field)voidsetReportTimeZone(TimeZone reportTimeZone)Sets the report time zone, which is the one used to display datetime values in the report.voidsetTimeZone(TimeZone timeZone, boolean override)Sets the default time zone to be used for retrieving date/time values from the result set.
-
-
-
Field Detail
-
PROPERTY_FIELD_COLUMN_NAME
public static final String PROPERTY_FIELD_COLUMN_NAME
Property specifying the result set column name for the dataset field.- See Also:
- Constant Field Values
-
PROPERTY_FIELD_COLUMN_LABEL
public static final String PROPERTY_FIELD_COLUMN_LABEL
Property specifying the result set column label for the dataset field.- See Also:
- Constant Field Values
-
PROPERTY_FIELD_COLUMN_INDEX
public static final String PROPERTY_FIELD_COLUMN_INDEX
Property specifying the result set column index for the dataset field.- See Also:
- Constant Field Values
-
INDEXED_COLUMN_PREFIX
public static final String INDEXED_COLUMN_PREFIX
- See Also:
- Constant Field Values
-
EXCEPTION_MESSAGE_KEY_RESULT_SET_CLOB_VALUE_READ_FAILURE
public static final String EXCEPTION_MESSAGE_KEY_RESULT_SET_CLOB_VALUE_READ_FAILURE
- See Also:
- Constant Field Values
-
EXCEPTION_MESSAGE_KEY_RESULT_SET_COLUMN_INDEX_OUT_OF_RANGE
public static final String EXCEPTION_MESSAGE_KEY_RESULT_SET_COLUMN_INDEX_OUT_OF_RANGE
- See Also:
- Constant Field Values
-
EXCEPTION_MESSAGE_KEY_RESULT_SET_FIELD_VALUE_NOT_RETRIEVED
public static final String EXCEPTION_MESSAGE_KEY_RESULT_SET_FIELD_VALUE_NOT_RETRIEVED
- See Also:
- Constant Field Values
-
EXCEPTION_MESSAGE_KEY_RESULT_SET_METADATA_NOT_RETRIEVED
public static final String EXCEPTION_MESSAGE_KEY_RESULT_SET_METADATA_NOT_RETRIEVED
- See Also:
- Constant Field Values
-
EXCEPTION_MESSAGE_KEY_RESULT_SET_UNKNOWN_COLUMN_NAME
public static final String EXCEPTION_MESSAGE_KEY_RESULT_SET_UNKNOWN_COLUMN_NAME
- See Also:
- Constant Field Values
-
EXCEPTION_MESSAGE_KEY_RESULT_SET_UNKNOWN_COLUMN_LABEL
public static final String EXCEPTION_MESSAGE_KEY_RESULT_SET_UNKNOWN_COLUMN_LABEL
- See Also:
- Constant Field Values
-
EXCEPTION_MESSAGE_KEY_RESULT_SET_NEXT_RECORD_NOT_RETRIEVED
public static final String EXCEPTION_MESSAGE_KEY_RESULT_SET_NEXT_RECORD_NOT_RETRIEVED
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
JRResultSetDataSource
public JRResultSetDataSource(JasperReportsContext jasperReportsContext, ResultSet resultSet)
-
JRResultSetDataSource
public JRResultSetDataSource(ResultSet resultSet)
-
-
Method Detail
-
getResultSet
public ResultSet getResultSet()
Access the result set that this data source is based on.- Returns:
- the result set used by this data source
-
next
public boolean next() throws JRExceptionDescription copied from interface:JRDataSourceTries to position the cursor on the next element in the data source.- Specified by:
nextin interfaceJRDataSource- Returns:
- true if there is a next record, false otherwise
- Throws:
JRException- if any error occurs while trying to move to the next element
-
getFieldValue
public Object getFieldValue(JRField field) throws JRException
Description copied from interface:JRDataSourceGets the field value for the current position.- Specified by:
getFieldValuein interfaceJRDataSource- Returns:
- an object containing the field value. The object type must be the field object type.
- Throws:
JRException
-
readDate
protected Object readDate(Integer columnIndex, JRField field) throws SQLException
- Throws:
SQLException
-
readTimestamp
protected Object readTimestamp(Integer columnIndex, JRField field) throws SQLException
- Throws:
SQLException
-
readTime
protected Object readTime(Integer columnIndex, JRField field) throws SQLException
- Throws:
SQLException
-
searchColumnByName
protected Integer searchColumnByName(JRField field) throws SQLException, JRException
- Throws:
SQLExceptionJRException
-
searchColumnByName
protected Integer searchColumnByName(String name) throws SQLException
- Throws:
SQLException
-
searchColumnByLabel
protected Integer searchColumnByLabel(JRField field) throws SQLException, JRException
- Throws:
SQLExceptionJRException
-
searchColumnByLabel
protected Integer searchColumnByLabel(String label) throws SQLException
- Throws:
SQLException
-
searchColumnByIndex
protected Integer searchColumnByIndex(JRField field) throws SQLException, JRException
- Throws:
SQLExceptionJRException
-
searchColumnByIndex
protected Integer searchColumnByIndex(String index) throws SQLException, JRException
- Throws:
SQLExceptionJRException
-
clobToString
protected String clobToString(Clob clob) throws JRException
- Throws:
JRException
-
getArrayReader
protected CharArrayReader getArrayReader(Reader reader, long size) throws IOException
- Throws:
IOException
-
readBytes
protected byte[] readBytes(Integer columnIndex) throws SQLException, IOException
- Throws:
SQLExceptionIOException
-
readBytes
protected byte[] readBytes(InputStream is, long size) throws IOException
- Throws:
IOException
-
setTimeZone
public void setTimeZone(TimeZone timeZone, boolean override)
Sets the default time zone to be used for retrieving date/time values from the result set. In most cases no explicit time zone conversion would be required for retrieving date/time values from the DB, and this parameter should be null.- Parameters:
timeZone- the default time zoneoverride- whether the default time zone overrides time zones specified as field-level properties- See Also:
JRJdbcQueryExecuterFactory.PROPERTY_TIME_ZONE
-
setReportTimeZone
public void setReportTimeZone(TimeZone reportTimeZone)
Sets the report time zone, which is the one used to display datetime values in the report. The time zone is used when theJRJdbcQueryExecuterFactory.PROPERTY_TIME_ZONEproperty is set to REPORT_TIME_ZONE.- Parameters:
reportTimeZone- the time zone used to display datetime values in the report
-
-