1. 概述
1.1 应用场景
制作报表前首先需要定义数据来源,实际用户系统最常见的就是数据保存在数据库中,并且在不断更新中,使用数据库数据来制作报表,并且报表内容会随着数据库的更新而更新。
1.2 功能简介
FineReport 中有两种数据连接方式:通过设计器建立数据连接和通过平台建立数据连接
1.2.1 在数据决策系统中建立数据连接
选择「服务器>报表平台管理」,打开数据决策系统,点击「管理系统>数据连接>数据连接管理」,选择新建数据连接。详情请参见:平台数据连接 。
注1:推荐用户在数据决策系统而非设计器中新建数据连接。
注2:FineReport 支持通过 JDBC、JNDI、SAP、XMLA 和 FineBI 五种方式连接数据库,数据连接存储在工程中,当用户执行需要访问数据库的操作时这些连接被激活。
注3:XMLA 和 FineBI 连接的是多维数据库,其中 FineBI 是连接帆软的另一款 BI 产品的数据库。
1.2.1 在设计器建立数据连接
打开设计器,在「服务器>定义数据连接」中定义需要连接的数据库,即可建立需要的数据连接。详情请参见:[设计器]JDBC连接数据库
如果需要修改数据连接的名称,可以通过双击原名称进入编辑状态进行修改,修改完点击「确定」即可,如下图所示:
JAR包 版本在 2021-3-17 之后的设计器和服务器,当多个用户都连接了同一个远程服务器进行远程设计时,同一时间内,「定义数据连接」功能只能由一个人编辑操作。当一个用户编辑此功能时,其他用户将看到该功能显示「已锁定」且无法编辑,如下图所示:
点击「锁」标志后,弹窗提示:已由其他用户编辑锁定中,为防止数据丢失,请稍后再试 。如下图所示:
在定义数据集位置的「定义数据连接」标志处,也会处于锁定状态,显示同样的「锁」标志,点击弹窗提示。如下图所示:
当该用户结束编辑后,将不再锁定,允许其他用户编辑。
2. JDBC 连接与 JNDI 连接对比
JDBC 连接数据库 | JNDI 连接数据库 | |
定义 | JDBC(Java Data Base Connectivity,Java 数据库连接)是一种用于执行 SQL 语句的 Java API,可以为多种关系数据库提供统一访问 | JNDI (Java Naming and Directory Interface)是一个应用程序设计的 API,为开发人员提供了查找和访问各种命名和目录服务的通用、统一的接口,类似 JDBC,都是构建在抽象层上 |
连接方式区别 | JDBC 就是直接连接物理数据库,连接数据库比较快,但在程序中使用的话就比较烦琐,每次连接都要有一定的编码,和数据库的连接需要手动关闭 | 使用 JNDI 连接某个数据源,此数据源所连接的数据库都在应用服务器端定义 |
各自优势 | 在报表服务器部署后,如果数据库的相关参数变更,重新修改配置文件中的 JDBC 参数即可,只要保证数据源的名称不变,数据连接就无需修改; JDBC 避免了报表与数据库之间的紧耦合,和项目共用服务器的连接池,且连接速度比较快,使应用更加易于配置、易于部署 | JNDI只需要把数据库后台、驱动、URL、用户名、连接池等问题交给 J2EE 容器来配置和管理,然后对这些配置和管理进行引用即可 |
3. 索引
内容 | 简介 | 文档教程 | |
---|---|---|---|
JDBC 连接数据库 | 以连接 Oracle 数据库为例,介绍 JDBC 方式连接数据库的操作步骤 | JDBC 连接数据库 | |
JNDI 连接数据库 | 通过 JNDI 方式定义数据连接 | JNDI 连接数据库 | |
多维数据库 | XMLA 数据连接 | 通过 XMLA 数据连接的方式来与多维数据库进行连接 | XMLA 数据连接 |
SAP 数据连接 | FineReport 将 SAP 数据连接功能做成一个插件,新增 SAP 数据连接类型,添加 SAP 数据集类型 | SAP 数据连接 | |
SAP BW 数据连接 | 新 SAP BW 多维数据集用于连接 BW Cube 和 BW Query,从以前的多维数据集中分离出来单独做成了插件。 | SAP BW数据连接 | |
其他数据连接 | Redis 数据连接 | Redis 缓存数据库也可通过插件进行连接 | Redis 数据连接 |
JSON 数据连接 | 通过插件将 JSON 格式的数据转变为报表中可以使用的数据表。 | JSON 数据连接 | |
MongDB 数据连接 | 安装插件可以连接 MongoDB 数据库 | MongoDB 数据连接 | |
Spider 引擎数据连接 | FineReport10.0 设计器中通过安装插件,可对接 FineBI 的 Spider 引擎取数,共享 FineBI 的表数据及数据权限。 | Spider 数据连接 |