在本教程中,我们展示如何在 Spring Boot 框架中使用 JasperReports。 Spring Boot 在命令行中运行。
JasperReports 是一个 Java 开源报告库。 它可以创建各种格式的报告,包括 PDF,HTML,XLS 或 CSV。 JasperReports 以一种简单而灵活的方式创建了面向页面的可打印文档。
JdbcTemplate 是一个 Spring 库,可以帮助程序员创建与关系数据库和 JDBC 一起使用的应用。 它会处理许多繁琐且容易出错的底层细节,例如处理事务,清理资源以及正确处理异常。 JdbcTemplate 在 Spring 的spring-jdbc
模块中提供。
Spring 是用于开发 Java 企业应用的流行 Java 应用框架。 它还有助于集成各种企业组件。 Spring Boot 使创建具有 Spring 动力的生产级应用和服务变得很容易,而对安装的要求却最低。
Apache Derby 是完全用 Java 实现的开源关系数据库。 它占地面积小,易于部署和安装。 它可以在嵌入式和客户端/服务器模式下运行。
CARS
表
在我们的应用中,我们使用下表:
cars.sql
cars.sql
文件创建CARS
表。
一种选择是使用ij
工具从 SQL 脚本创建表。
使用NetworkServerControl
工具启动 Derby 服务器。
应用
以下 Spring Boot 应用从数据库表加载数据,并使用 JasperReports 库从中生成 PDF 报告。
这是项目结构。
pom.xml
Maven pom.xml
文件包含以下依赖项:derbyclient
,jasperreports
和spring-boot-starter-jdbc
。 jasperreports
依赖项是 JasperReports 库; spring-boot-starter-jdbc
包含 JdbcTemplate 库。
report2.xml
这是报告模板文件。 模板仅包含明细带。 在详细信息区域内,将对数据源提供的每个记录重复每个元素。
报告中有三个字段。 这些字段映射到数据源 bean 的元素。
文本字段是充满动态数据的元素。 我们将一个字段中的值放在文本字段中。 我们使用$F{}
语法引用该变量。
Car.java
这是Car
bean 类。 它包含商品 ID,名称和价格。
application.yml
application.yml
是主要的 Spring Boot 配置文件。 它包含 Derby 数据源设置。
AppConfig.java
AppConfig
是 Java 配置类。 它从配置文件创建数据源 bean。
ReportGenerator.java
ReportGenerator
根据提供的数据创建 PDF 报告。
使用JasperCompileManager.compileReport()
方法,我们将 XML 报告模板编译为中介JasperReport
。
从提供的汽车对象列表中,我们创建一个JRBeanCollectionDataSource
。 Bean 的属性将被映射到已编译报表对象的字段。
已编译的 Jasper 对象使用JasperFillManager.fillReport()
方法填充了数据。 产生一个JasperPrint
对象。
JasperExportManager.exportReportToPdfFile()
方法将JasperPrint
对象转换为 PDF 文件。
ICarService.java
ICarService
提供了一种从数据源获取所有汽车的合同方法。
CarService.java
CarService
包含findAll()
方法的实现。 我们借助JdbcTemplate
从CARS
表中检索所有汽车。
MyRunner.java
MyRunner
是 Spring Boot 应用的命令行运行程序。
我们注入服务对象。
我们使用服务对象获取所有汽车。
ReportGenerator
用于创建 PDF 报告。 该报告包含检索到的汽车。
Application.java
Application
设置 Spring Boot 应用。
在本教程中,我们使用 JasperReports 创建了 PDF 报告。 该应用使用了 Spring Boot 框架,并在命令行中运行。