支持的数据库
数据连接可选的 31 种数据库类型、内置驱动、JDBC URL 模板、默认端口与使用注意事项。
概述
赛特数据的「数据连接」通过 JDBC 连接关系型数据库。数据库类型清单由后端 DatabaseProduct 登记表统一维护,前端「数据库类型」下拉框从接口 GET /datasource/types 读取,因此下拉框里出现的类型就是当前版本登记的全部类型,共 31 种。
31 种类型按驱动情况分为两组:
- 驱动已随安装包内置,可直接使用:18 种。
- 下拉框中带「(需上传驱动)」标记:13 种,需要在「驱动管理」中上传对应的 JDBC 驱动 JAR。
以上数量按登记表与安装包 sight-report.jar 的 BOOT-INF/lib 内驱动 JAR 逐项核对得出,不同版本的安装包可能不同,以「数据连接 > 驱动管理」页面显示的「状态」为准。
注意:数据连接目前只支持 JDBC 类型。API 接口、JSON 等数据来源不是数据连接,而是数据集类型,见 API 数据集。
功能入口
- 登录后台,进入「系统」菜单下的「数据连接」(路由
/datasource)。 - 在「数据连接」标签页点击「新建数据连接」,「数据库类型」下拉框即为本文清单。
- 需要查看驱动是否可用,切换到「驱动管理」标签页。
内置驱动的数据库
下表的 URL 模板抄自登记表,{host}、{port}、{databaseName} 由表单字段自动替换。「测试 SQL」是连接池校验默认使用的语句。
| 数据库类型 | 类型编码 | 默认端口 | JDBC URL 模板 | 测试 SQL |
|---|---|---|---|---|
| MySQL | mysql |
3306 | jdbc:mysql://{host}:{port}/{databaseName} |
SELECT 1 |
| Oracle | oracle |
1521 | jdbc:oracle:thin:@//{host}:{port}/{databaseName} |
SELECT 1 FROM DUAL |
| PostgreSQL | postgresql |
5432 | jdbc:postgresql://{host}:{port}/{databaseName} |
SELECT 1 |
| SQL Server | sqlserver |
1433 | jdbc:sqlserver://{host}:{port};databaseName={databaseName} |
SELECT 1 |
| IBM DB2 | db2 |
50000 | jdbc:db2://{host}:{port}/{databaseName} |
SELECT 1 FROM SYSIBM.SYSDUMMY1 |
| SQLite | sqlite |
无 | jdbc:sqlite:{databaseName} |
SELECT 1 |
| H2 | h2 |
9092 | jdbc:h2:tcp://{host}:{port}/{databaseName} |
SELECT 1 |
| HSQLDB | hsql |
9001 | jdbc:hsqldb:hsql://{host}:{port}/{databaseName} |
SELECT 1 FROM INFORMATION_SCHEMA.SYSTEM_USERS |
| Informix | informix |
9088 | jdbc:informix-sqli://{host}:{port}/{databaseName} |
SELECT FIRST 1 1 FROM systables |
| MariaDB | mariadb |
3306 | jdbc:mariadb://{host}:{port}/{databaseName} |
SELECT 1 |
| ClickHouse | clickhouse |
8123 | jdbc:clickhouse://{host}:{port}/{databaseName} |
SELECT 1 |
| 人大金仓 | kingbase |
54321 | jdbc:kingbase8://{host}:{port}/{databaseName} |
SELECT 1 |
| 达梦 | dm |
5236 | jdbc:dm://{host}:{port}/{databaseName} |
SELECT 1 FROM DUAL |
| 华为 GaussDB | gaussdb |
8000 | jdbc:opengauss://{host}:{port}/{databaseName} |
SELECT 1 |
| OceanBase | oceanbase |
2881 | jdbc:oceanbase://{host}:{port}/{databaseName} |
SELECT 1 |
| Greenplum | greenplum |
5432 | jdbc:postgresql://{host}:{port}/{databaseName} |
SELECT 1 |
| Apache Doris | doris |
9030 | jdbc:mysql://{host}:{port}/{databaseName} |
SELECT 1 |
| StarRocks | starrocks |
9030 | jdbc:mysql://{host}:{port}/{databaseName} |
SELECT 1 |
其中 SQLite 的「数据库名称」填写数据库文件路径,没有主机与端口。

需要上传驱动的数据库
下表 13 种类型在下拉框中显示「(需上传驱动)」。上传方法见 驱动管理与连接池。
| 数据库类型 | 类型编码 | 默认端口 | JDBC URL 模板 |
|---|---|---|---|
| Apache Derby | derby |
1527 | jdbc:derby://{host}:{port}/{databaseName} |
| 南大通用 GBase 8a | gbase |
5258 | jdbc:gbase://{host}:{port}/{databaseName} |
| 南大通用 GBase 8s | gbase8s |
9088 | jdbc:gbasedbt-sqli://{host}:{port}/{databaseName} |
| 海量 Vastbase G100 | vastbase |
5432 | jdbc:vastbase://{host}:{port}/{databaseName} |
| 阿里云 PolarDB(MySQL 版) | polardb |
3306 | jdbc:mysql://{host}:{port}/{databaseName} |
| TiDB | tidb |
4000 | jdbc:mysql://{host}:{port}/{databaseName} |
| 中兴 GoldenDB | goldendb |
3306 | jdbc:goldendb://{host}:{port}/{databaseName} |
| 瀚高 | highgo |
5866 | jdbc:highgo://{host}:{port}/{databaseName} |
| 虚谷 | xugu |
5138 | jdbc:xugu://{host}:{port}/{databaseName} |
| 神通 | oscar |
2003 | jdbc:oscar://{host}:{port}/{databaseName} |
| Apache Hive | hive |
10000 | jdbc:hive2://{host}:{port}/{databaseName} |
| Trino | trino |
8080 | jdbc:trino://{host}:{port}/{databaseName} |
| Presto | presto |
8080 | jdbc:presto://{host}:{port}/{databaseName} |
PolarDB 与 TiDB 的 URL 使用 jdbc:mysql 前缀,而安装包已内置 MySQL 驱动,实际连接时通常可以直接使用。这两项仍会显示「(需上传驱动)」,是登记表的标记,不代表一定连不上。
Apache Derby 登记的驱动类(AutoloadedDriver、EmbeddedDriver)不在安装包内置的 derbyclient 中,因此归入需上传一组。
各数据库的注意事项
内置驱动版本
安装包内置的驱动 JAR 及版本如下(取自 apps/backend/pom.xml 与打包产物):
| 驱动 | 版本 | 对应类型 |
|---|---|---|
| mssql-jdbc | 13.2.1.jre11 | SQL Server |
| mysql-connector-j | 9.1.0 | MySQL、Apache Doris、StarRocks |
| ojdbc11 | 23.5.0.24.07 | Oracle |
| mariadb-java-client | 3.4.2 | MariaDB |
| postgresql | 42.7.5 | PostgreSQL、Greenplum |
| h2 | 2.2.224 | H2 |
| hsqldb | 2.7.4 | HSQLDB |
| DmJdbcDriver18 | 8.1.3.140 | 达梦 |
| kingbase8 | 8.6.0 | 人大金仓 |
| clickhouse-jdbc | 0.6.5 | ClickHouse |
| sqlite-jdbc | 3.45.1.0 | SQLite |
| opengauss-jdbc | 5.1.0 | 华为 GaussDB |
| oceanbase-client | 2.4.12 | OceanBase |
| db2 jcc | 11.5.9.0 | IBM DB2 |
| informix jdbc | 4.50.10 | Informix |
| derbyclient | 10.16.1.1 | 不满足 Derby 登记的驱动类,见上文 |
Oracle
表单多出「连接模式」,可选「服务名 (Service Name)」或「SID」。服务名模式生成 jdbc:oracle:thin:@//host:port/name,SID 模式生成 jdbc:oracle:thin:@host:port:sid。Oracle 的「模式名称」以 ?currentSchema= 形式附加。
SQL Server
分隔符为分号:数据库名写在 ;databaseName= 中,「扩展参数」也以 ;k=v 形式追加。trustServerCertificate 参数允许使用。
Informix 与 GBase 8s
扩展参数的第一个以 :k=v 追加,之后以 ; 分隔。数据库实例名通过扩展参数设置:Informix 使用 INFORMIXSERVER,GBase 8s 使用 GBASEDBTSERVER。
模式名称
支持「模式名称」的类型,表单中会出现该字段,是一个在线查询的下拉框:填好用户名和密码后从数据库读取,也可手动输入。URL 中的附加方式随类型不同:
| 方式 | 写入 URL 的形式 | 典型类型 |
|---|---|---|
currentSchema |
?currentSchema=模式名 |
Oracle、PostgreSQL、DB2、GBase 8a |
schema |
?schema=模式名 |
H2、达梦 |
semicolonSchema |
;schema=模式名 |
SQL Server |
OceanBase、Trino 与 Presto 虽然支持选择模式,但模式不写入 URL。MySQL、MariaDB 等不显示模式名称字段。
Doris、StarRocks、Greenplum
Doris 与 StarRocks 走 MySQL 协议,使用 MySQL 驱动,默认端口 9030(查询端口)。Greenplum 使用 PostgreSQL 驱动。
类型识别
保存时后端根据 URL 前缀识别数据库产品,用于选择 SQL 方言(分页、函数)。方言类现有:ANSI(Trino、Presto)、DB2、Derby、达梦、H2、HSQL、Informix、MariaDB、MySQL、Oracle、PostgreSQL、SQLite、SQL Server。分页语法因方言而异:MySQL 为 limit n 或 limit m,n;Oracle 使用 rownum 嵌套;ANSI 方言使用 fetch first n rows only。
示例
连接一台 MySQL 8 上的医院业务库 his_demo:
| 字段 | 填写 |
|---|---|
| 数据连接名称 | his_mysql |
| 数据库类型 | MySQL |
| 主机 | 192.168.1.20 |
| 端口 | 3306 |
| 数据库名称 | his_demo |
| 用户名 | report_ro |
生成的 URL 为 jdbc:mysql://192.168.1.20:3306/his_demo。完整字段说明见 数据源配置。
注意事项
注意:URL 中出现
allowLoadLocalInfile、autoDeserialize、socketFactory、queryInterceptors等危险参数,或 H2 的INIT、RUNSCRIPT,会被 JDBC URL 安全校验拒绝。
提示:生产环境建议为报表单独建立只读数据库账号,避免报表 SQL 误改业务数据。