1. 概述
1.1 应用场景
在制作报表前,我们需要在 FineReport 中建立与数据库的连接,让 FineReport 能获取到数据库中的数据。
1.2 功能简介
FineReport 中有两种数据连接方式:
在数据决策系统中建立数据连接。选择「服务器>报表平台管理」,打开数据决策系统,建立数据连接。详情请参考:平台数据连接
注1:推荐用户在数据决策系统而非设计器中新建数据连接。
注2:FineReport 支持通过 JDBC、JNDI、SAP、XMLA 和 FineBI 五种方式连接数据库,数据连接存储在工程中,当用户执行需要访问数据库的操作时这些连接被激活。
注3:XMLA 和 FineBI 连接的是多维数据库,其中 FineBI 是连接帆软的另一款 BI 产品的数据库。
在设计器中建立连接,详情请参见:[设计器]JDBC连接数据库
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. FineReport 适配数据库
内容 | 简介 | 文档教程 | |
---|---|---|---|
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数据连接 | |
多维数据库插件 | 连接多维数据库 | 多维数据库插件 | |
JSON 数据连接 | 通过插件将 JSON 格式的数据转变为报表中可以使用的数据表。 | JSON 数据连接 | |
MongDB 数据连接 | 安装插件可以连接 MongoDB 数据库 | MongoDB 数据连接 | |
第三方插件 | Redis 数据连接 | Redis 缓存数据库也可通过插件进行连接 | Redis 数据连接 |
Elasticsearch数据集插件 | 将 ElasticSearch 的查询结果通过 FineReport 展示 | ||
InfluxDB数据集插件 | 连接 InfluxDB 数据库 | InfluxDB数据集插件 | |
新SSAS插件 | 连接 SSAS 数据库 | 新SSAS插件 |