反馈已提交

网络繁忙

保存模板至数据库

  • 文档创建者:lu123
  • 历史版本:20
  • 最近更新:RosieY 于 2022-01-05
  • 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在线
    页面反馈
    针对当前网页的建议、问题反馈
    售前咨询
    采购需求/获取报价/预约演示
    或拨打: 400-811-8890 转1
    qr
    热线电话
    咨询/故障救援热线:400-811-8890转2
    总裁办24H投诉:17312781526
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持