2

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

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

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

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

4

2 回答 2

1

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

        Connection con = getConnection();
        PreparedStatement statement = con.prepareStatement(jdbcString.toString());
        ResultSet rs = statement.executeQuery();
        jrDataSource = new JRResultSetDataSource(rs);
于 2013-09-27T07:44:21.563 回答
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);

这里报告数据是JRDatasource

于 2013-03-06T06:11:59.530 回答