Usage of the JDBC Report Source

JDBC sources are at the lowest level of data source that you can use. The usage of this data kind of data source requires configuring some attributes for the jr:reportSource tag.

Configuring the report source

The attributes required to be used with this type of report soruce are showed in the following table:

AttributeOptionalDescription
driverClassNamefalseName of the driver class to be used.
usernametrueDatabase user
passwordtrueDatabase Password
valuefalseURL of the connection
querytrueQuery to be used to offer the data to the report

The jr:source tag just supports the last two listed attributes, the other three (driverClassName, username and password) must be provided using the standard f:attribute tag.

Examples

Simple Usage

This usage of the report source will give to the report a java.sql.Connection instance. The report must be desgined with a default query.

The most simple usage consist on stablish the two required attributes:

<jr:source id="jdbcSource" type="jdbc"
        value="jdbc:psql://localhost/databasename"
>
        <f:attribute name="driverClassName" value="org.postgresql.Driver" />
</jr:source>

You can also specify the username and password of the connection this way:

<jr:source id="jdbcSource"
        value="jdbc:psql://localhost/databasename"
>
        <f:attribute name="driverClassName" value="org.postgresql.Driver" />
        <f:attribute name="username" value="userId" />
        <f:attribute name="password" value="s3cret" />
</jr:source>

Using queries

This kind of usage will give to the report a JasperReports' ResultSetDataSource instance. The report doesn't need to be designed with a default query.

To use queries with this kind of source you must include the query attribute:

<jr:source id="jdbcSource"
        value="jdbc:psql://localhost/databasename"
        query="select * from orders"
>
        <f:attribute name="driverClassName" value="org.postgresql.Driver" />
</jr:source>

Also you can use parametriced queries this way:

<jr:source id="jdbcDataSource"
        value="jdbc:psql://localhost/databasename"
        query="select * from orders where orderId = ?"
>
        <f:attribute name="driverClassName" value="org.postgresql.Driver" />
        <f:param value="23938" />
</jr:source>