JasperReport是一個開源的Java報表生成工具,它可以與不同的數據源結合使用,其中包括MySQL數據庫。在本文中,我們將介紹如何使用JasperReport和MySQL數據庫創建報表。
首先,我們需要在MySQL數據庫中準備報表數據。我們可以使用以下SQL語句創建一個名為“customers”的表,該表存儲客戶姓名和地址:
CREATE TABLE customers ( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(100) NOT NULL, address VARCHAR(200), PRIMARY KEY (id) );
接下來,我們可以將一些樣本數據插入“customers”表中,如下所示:
INSERT INTO customers (name, address) VALUES ("John Smith", "123 Main St, Anytown USA"), ("Jane Doe", "456 Oak Rd, Somewhere Else USA"), ("Bob Johnson", "789 Maple Ave, Another Place USA");
現在,我們可以開始使用JasperReport工具創建報表。首先,我們需要在我們的Java項目中添加JasperReport的依賴庫。這可以通過添加以下Maven依賴項來完成:
<dependency> <groupId>net.sf.jasperreports</groupId> <artifactId>jasperreports</artifactId> <version>6.16.0</version> </dependency>
現在我們可以編寫Java代碼來生成報告。以下是一個簡單的Java類,該類連接到MySQL數據庫并提取客戶數據:
import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import net.sf.jasperreports.engine.JRException; import net.sf.jasperreports.engine.JasperFillManager; import net.sf.jasperreports.engine.JasperPrint; import net.sf.jasperreports.engine.JasperReport; import net.sf.jasperreports.engine.design.JasperDesign; import net.sf.jasperreports.engine.xml.JRXmlLoader; public class MyReport { public static void main(String[] args) { String databaseURL = "jdbc:mysql://localhost:3306/mydatabase"; String user = "root"; String password = "mypassword"; try (Connection connection = DriverManager.getConnection(databaseURL, user, password)) { JasperDesign jasperDesign = JRXmlLoader.load("customers.jrxml"); JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign); Mapparameters = new HashMap<>(); JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, connection); JasperExportManager.exportReportToPdfFile(jasperPrint, "customers.pdf"); } catch (SQLException | JRException e) { e.printStackTrace(); } } }
該類從MySQL數據庫加載“customers.jrxml”文件中的JasperDesign,該文件定義了客戶報告的外觀和數據格式。隨后,我們通過JasperCompileManager編譯JasperDesign,并使用JasperFillManager從MySQL數據庫中填充報告。
最后,我們可以使用JasperExportManager導出生成的報告。在這種情況下,我們導出到PDF文件中,但是您也可以使用其他支持的格式。
在以上的示例代碼中,我們可以看到了如何使用Java和JasperReport工具與MySQL數據庫結合創建報表。此方法是一種靈活的方式,將能夠生成各種不同類型的報表。