使用这个模板的客户端核心代码:
try {
JasperReport jasperReport = JasperCompileManager.compileReport(reportSource);
// Make the driver class available.
Class.forName("com.mysql.jdbc.Driver");
// Create a connection to pass into the report.
java.sql.Connection conn =
DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","123456");
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, params, conn);
JRCsvExporter csvExporter = new JRCsvExporter();
csvExporter.setParameter(JRExporterParameter.JASPER_PRINT,jasperPrint);
csvExporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME,reportDest);
csvExporter.exportReport();
JasperViewer.viewReport(jasperPrint);
} catch (JRException e) {
e.printStackTrace();
}
catch (ClassNotFoundException ex) {
ex.printStackTrace();
}
catch (SQLException ex) {
ex.printStackTrace();
}
}
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, params, conn);
这句将HelloWorld中空的JasperReports数据源替换成了一个叫做conn的数据库连接参数,这也是程序的重点所在!
这次,我们将报表导出成CSV格式。
看一下运行效果:

图2
Ok,通过这个JDBC数据源报表的应用,您该掌握了如何以JDBC的方式获取数据并创建报表。
可是您会发现:
<queryString>
<![CDATA[SELECT * FROM user ORDER BY id]]>
</queryString>
在OO大行其道的今天,这种直接写SQL语句的做法,就显得太过程化了。POJOs?对,就是它!JasperReports也提供了对POJOs数据源支持。