Jasperreport+studio设计报表教程(八)--MySQL数据源

转自:https://blog.csdn.net/pigdreams/article/details/60966852

前几章介绍了以实体类作为报表数据源进行输出的案例,这一章讲解现在常用的报表数据源,那就是数据库,以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%2b8 
 
 
  • 1

这里写图片描述
这次再来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%2b8";
            // 我们的驱动类,要在依赖包中放置这个驱动包

            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();
        }
    }
}

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41

刷新工程,生成了一个html文件,预览,与数据库数据一致,大功告成。
这里写图片描述
这里写图片描述



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值