如何使用JRDataSource进行jasper报告

时间:2012-04-17 08:38:16

标签: java spring jasper-reports

以前我将连接对象发送到 fillReport() 类的 JasperFillManager 。它工作正常,它也生成数据。以下是我用于数据库连接的代码。

Connection conn = null; 
Class.forName("com.mysql.jdbc.Driver"); 
conn = (Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/dbname", "username", "password");

但是现在我不想将连接对象传递给 fillReport() ,而是想传递JRDataSource。我怎样才能做到这一点?如何使用mysql数据库信息在我的spring配置文件中配置此 JRDataSource ?任何人都可以告诉我。

我正在使用iReport 4.5.0Spring 3.0.5 RELEASE。如果您需要更多信息,我会给您。

2 个答案:

答案 0 :(得分:1)

您可以使用conn从数据库中获取结果集。然后,您将使用JRResultSetDataSource来实例化数据源。

        Connection con = getConnection();
        PreparedStatement statement = con.prepareStatement(jdbcString.toString());
        ResultSet rs = statement.executeQuery();
        jrDataSource = new JRResultSetDataSource(rs);

答案 1 :(得分:0)

JasperReport report 
   = (JasperReport)JRLoader.loadObject(
       "F:\\Tomcat 7.0\\webapps\\ivmreports\\jasper\\FailedInsertionEventsPDF.jasper");
// Map<String, Object> parameterMap = new HashMap<String, Object>();
JasperPrint print = JasperFillManager.fillReport(report, parameterMap, reportData);

此处reportdata为JRDatasource