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 theJRDataSource
interface. Since most reports are generated using data from a relational database, JasperReports includes by default this implementation that wraps ajava.sql.ResultSet
object.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 String
EXCEPTION_MESSAGE_KEY_RESULT_SET_CLOB_VALUE_READ_FAILURE
static String
EXCEPTION_MESSAGE_KEY_RESULT_SET_COLUMN_INDEX_OUT_OF_RANGE
static String
EXCEPTION_MESSAGE_KEY_RESULT_SET_FIELD_VALUE_NOT_RETRIEVED
static String
EXCEPTION_MESSAGE_KEY_RESULT_SET_METADATA_NOT_RETRIEVED
static String
EXCEPTION_MESSAGE_KEY_RESULT_SET_NEXT_RECORD_NOT_RETRIEVED
static String
EXCEPTION_MESSAGE_KEY_RESULT_SET_UNKNOWN_COLUMN_LABEL
static String
EXCEPTION_MESSAGE_KEY_RESULT_SET_UNKNOWN_COLUMN_NAME
static String
INDEXED_COLUMN_PREFIX
static String
PROPERTY_FIELD_COLUMN_INDEX
Property specifying the result set column index for the dataset field.static String
PROPERTY_FIELD_COLUMN_LABEL
Property specifying the result set column label for the dataset field.static String
PROPERTY_FIELD_COLUMN_NAME
Property 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 String
clobToString(Clob clob)
protected Calendar
createFieldCalendar(JRField field)
protected CharArrayReader
getArrayReader(Reader reader, long size)
protected Calendar
getFieldCalendar(JRField field)
Object
getFieldValue(JRField field)
Gets the field value for the current position.ResultSet
getResultSet()
Access the result set that this data source is based on.boolean
next()
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 Object
readDate(Integer columnIndex, JRField field)
protected Object
readTime(Integer columnIndex, JRField field)
protected Object
readTimestamp(Integer columnIndex, JRField field)
protected TimeZone
resolveTimeZone(String timezoneId)
protected Integer
searchColumnByIndex(String index)
protected Integer
searchColumnByIndex(JRField field)
protected Integer
searchColumnByLabel(String label)
protected Integer
searchColumnByLabel(JRField field)
protected Integer
searchColumnByName(String name)
protected Integer
searchColumnByName(JRField field)
void
setReportTimeZone(TimeZone reportTimeZone)
Sets the report time zone, which is the one used to display datetime values in the report.void
setTimeZone(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 JRException
Description copied from interface:JRDataSource
Tries to position the cursor on the next element in the data source.- Specified by:
next
in 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:JRDataSource
Gets the field value for the current position.- Specified by:
getFieldValue
in 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:
SQLException
JRException
-
searchColumnByName
protected Integer searchColumnByName(String name) throws SQLException
- Throws:
SQLException
-
searchColumnByLabel
protected Integer searchColumnByLabel(JRField field) throws SQLException, JRException
- Throws:
SQLException
JRException
-
searchColumnByLabel
protected Integer searchColumnByLabel(String label) throws SQLException
- Throws:
SQLException
-
searchColumnByIndex
protected Integer searchColumnByIndex(JRField field) throws SQLException, JRException
- Throws:
SQLException
JRException
-
searchColumnByIndex
protected Integer searchColumnByIndex(String index) throws SQLException, JRException
- Throws:
SQLException
JRException
-
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:
SQLException
IOException
-
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_ZONE
property is set to REPORT_TIME_ZONE.- Parameters:
reportTimeZone
- the time zone used to display datetime values in the report
-
-