Jasperreports6.3.1+Jaspersoft studio6.3.1进行报表开发实战教程(八)-Mysql数据源

    xiaoxiao2021-03-25  87

    实现Mysql数据库连接报表模板输出

    前几章介绍了以实体类作为报表数据源进行输出的案例,这一章讲解现在常用的报表数据源,那就是数据库,以Mysql数据库作为数据库工具。

    下载安装Mysql与Mysql workbench

    到官网下载数据库Mysql,地址链接。 下载好后,直接安装。安装过程中会设置root的密码,一定要记住这个密码,后面要用到。 安装完成后,再下载一个数据库可视化操作工具,MySql workbench,下载地址。 下载完成后,打开workbench,新建一个叫sample的数据库,里面新建一个student的表,里面随便设置一些学生的成绩数据。

    创建学生成绩数据表

    sample数据库建好之后,新建一个student表。 创建字段,数据结构如下。 输入学生的各科成绩与信息

    在模板配置数据库作为数据源

    创建一个数据源适配表 选择DATABASE JDBC Connection 选择驱动类型为Mysql 输入连接Mysql数据的账号与密码,root是刚才创建学生表数据的帐号。 点击测试后,弹出错误对话框,说找不到这个驱动类。 这是因为我们还没设定数据库连接驱动类的路径。驱动类可以去官网下载,地址。 我前几章提供的jar依赖包里就有这个类,添加路径依赖。 添加后再点test,依然出了错。这次是因为我们没有设置时区,所以数据库没有办法识别时间。 只须将jdbc url:后面加一句时区即可

    jdbc:mysql://localhost/sample?serverTimezone=GMT+8

    这次再来test,结果successful,说明mysql数据库成功连接上了。 点击Finish,数据源算配置好了。

    将数据库学生表字段配置到模块中

    在outline中右键模板,选择dataset and query 选择我们刚才创建的数据源适配。 这时可以看到localhost里mysql所有的数据库 到这一步,如果想拖动字段至右边是无效果,右边的那个框是用来写查询语句的,这是必不要少的。 完成之后,可以在Field看到数据库的字段,接下来只要将它们拖动到对应的位置即可。 查看预览,生成了五个表格,数据库有几条数据,对应就生成了几个表格。

    Java工程生成数据库作为数据填充的报表

    首先,自然是将我们的模板编译成二进制文件,放入Java工程中。 代码如下,附有详细说明。这里注意一点,模板并不提供数据库的连接,模板文件只提供了一条查询语句而已,实际的查询数据库还是得在代码中完成的。

    package test; import java.sql.Connection; import java.sql.DriverManager; import java.util.HashMap; import net.sf.jasperreports.engine.JasperExportManager; import net.sf.jasperreports.engine.JasperFillManager; import net.sf.jasperreports.engine.JasperPrint; public class JasperMysqlDataTest { public static void main(String[] args) { try { // 1.设定模板二进制文件路径,一定要可以通过该路径找到该文件 String reportPath = "./src/JasperMysqlSample.jasper"; // 2.创建一个map,里面不放置任何数据,只是作为一个参数 HashMap<String, Object> map = new HashMap<>(); // 3.创建一个connection,作为填充参数传入。 // url,模板中连接的url,复制过来即可 String url = "jdbc:mysql://localhost/sample?serverTimezone=GMT+8"; // 我们的驱动类,要在依赖包中放置这个驱动包 Class.forName("com.mysql.jdbc.Driver"); // 关键的一步,创建一个连接对象,要设置账号和密码 Connection conn = DriverManager.getConnection(url, "root", "password"); // 4.通过JasperFillManager工具进行填充报表,填充成功后会生成一个JasperPring文件,该文件用于输出 JasperPrint jasperPrint = JasperFillManager.fillReport(reportPath, map, conn); // 5.设定目标文件输出的路径 String desFilePath = "./src/JasperMysqlTest.html"; // 6.通过JasperExportManager管理工具进行报表输出文档,此外设定为输出html文件 JasperExportManager.exportReportToHtmlFile(jasperPrint, desFilePath); } catch (Exception e) { // TODO Auto-generated catch block System.out.println("发生了错误"); e.printStackTrace(); } } }

    刷新工程,生成了一个html文件,预览,与数据库数据一致,大功告成。

    转载请注明原文地址: https://ju.6miu.com/read-15899.html

    最新回复(0)