反饋已提交

網絡繁忙

保存模板至数据库

1. 概述

1.1 应用场景

一般制作的模板文件都放在硬盘中,如果硬盘损坏,就会导致文件丢失,后果会很严重。为了降低这个风险,我们可将模板文件全部保存在数据库中(二进制数据),这样若是硬盘损坏导致文件丢失,也可以将数据库中的备份文件取出,从而避免发生重大损失。

如下图所示,这里是已经将 cpt 模板保存于 MySQL 数据库中,点击查询即可看到保存的二进制文件。那么,如何将 cpt 模板保存入库呢?

1.2 实现原理

通过程序读取报表后将其提交入库。

2. 示例

以下示例读取内置模板 GettingStarted.cpt 后将其存储在数据库表 report 中。

2.1 准备存储表

数据库中先建好一张 report 表,表中包含两个字段 cptname(字符串型)和 cpt(二进制数据类型)。如下图所示,在MySQL 数据库中新建表 report。

222

2.2 准备编译环境

编译程序前,需先创建一个 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程序 

2.3 编写 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

2.4 编译 Java 文件

Java 程序编写完成后,在编译器中编译 SaveReportToDatabase.java ,编译通过后,就会在数据库表report 中看到新增的模板记录。如下图所示:

附件列表


主題: 原简体文档
  • 有幫助
  • 沒幫助
  • 只是瀏覽
  • 圖片不清晰
  • 用語看不懂
  • 功能說明看不懂
  • 操作說明太簡單
  • 內容有錯誤
中文(繁體)

滑鼠選中內容,快速回饋問題

滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。

不再提示

10s後關閉

獲取幫助
線上支援
獲取專業技術支援,快速幫助您解決問題
工作日9:00-12:00,13:30-17:30在线
頁面反饋
針對當前網頁的建議、問題反饋
售前咨詢
業務咨詢
電話:0933-790886或 0989-092892
郵箱:taiwan@fanruan.com
頁面反饋
*問題分類
不能為空
問題描述
0/1000
不能為空

反馈已提交

网络繁忙