以前我将连接对象发送到 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.0
和Spring 3.0.5 RELEASE
。如果您需要更多信息,我会给您。
答案 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