反饋已提交
網絡繁忙
一般制作的模板文件都放在硬盘中,如果硬盘损坏,就会导致文件丢失,后果会很严重。为了降低这个风险,我们可将模板文件全部保存在数据库中(二进制数据),这样若是硬盘损坏导致文件丢失,也可以将数据库中的备份文件取出,从而避免发生重大损失。
如下图所示,这里是已经将 cpt 模板保存于 MySQL 数据库中,点击查询即可看到保存的二进制文件。那么,如何将 cpt 模板保存入库呢?
通过程序读取报表后将其提交入库。
以下示例读取内置模板 GettingStarted.cpt 后将其存储在数据库表 report 中。
数据库中先建好一张 report 表,表中包含两个字段 cptname(字符串型)和 cpt(二进制数据类型)。如下图所示,在MySQL 数据库中新建表 report。
编译程序前,需先创建一个 Java 工程环境,并且需要一个 Java 编辑器,如 Eclipse 或 idea 。
在编辑器工程中导入 FineReport 工程 JAR 包。包括用户自己报表工程
%FR_HOME%/lib下的所有的包,
%FR_HOME%/server/lib 下的所有包,
%FR_HOME%/webapps/webroot/WEB-INF/lib下的所有包;
代码中会将模板信息入库,还需要导入对应的 JDBC 驱动,
还要引入 JDK 下的 tools.jar。详细操作可参考:编译Java程序
在编辑器中编写 Java 程序 SaveReportToDatabase.java,即读取内置模板 GettingStarted.cpt 后将其存储在数据库表 report 中。完整代码可参见:
注1:该程序中使用了 JDBC 连接数据库,2.2 节导入 JAR 包时需要将对应的数据库的驱动包导入工程中。
注2:用户使用时,注意将示例代码中的工程路径、模板名称用户自己工程下的;数据库连接信息替换为用户准备好的数据库。
注3:如果数据库大小写不敏感即不区分大小写,代码无需修改;如果数据库区分大小写,则需要将表名需要加双引号,修改后 insert into \"report\" values(?,?)
https://code.fanruan.com/demo/example/src/branch/release/10.0/src/main/java/com/fr/demo/SaveReportToDatabase.java
Java 程序编写完成后,在编译器中编译 SaveReportToDatabase.java ,编译通过后,就会在数据库表report 中看到新增的模板记录。如下图所示:
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉
反馈已提交
网络繁忙