2

fillReport()以前は、接続オブジェクトをJasperFillManagerクラスに送信していました。正常に動作しており、データも生成しています。以下は、データベース接続に使用しているコードです。

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

しかし、今は接続オブジェクトを渡したくないfillReport()代わりに、JRDataSource を渡したいと思っています。どうすればこれを達成できますか?JRDataSourcemysql データベース情報を使用して私の春の構成ファイルでこれを構成するにはどうすればよいですか? 誰でも教えてください。

と を使用iReport 4.5.0してSpring 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 に答える