DBX

JDBC 插件

DBX 默认使用 Rust 原生数据库驱动。JDBC 是可选能力:当你需要连接 DBX 暂未内置支持的数据库,或希望使用数据库厂商提供的 JDBC 驱动时,可以安装 JDBC 插件。

本页介绍的是 JDBC 插件和厂商 Driver JAR。若你要开发 SSH、SFTP、文件管理器或其他 DBX 扩展,并提交官方插件商店,请阅读开发和提交 DBX 插件。
JDBC 插件不会打包进 DBX 主应用,也不包含任何数据库厂商的 JDBC 驱动。你需要先安装 DBX JDBC 插件,再导入对应数据库的 JDBC driver JAR。
“JDBC 能连接”不等于拥有原生 DBX profile 的全部能力。表树、对象源码、结构编辑、导入、传输和管理视图取决于 JDBC 元数据、识别出的实际数据库类型和驱动能力清单;未知数据库会按通用 JDBC 能力运行。

Desktop 导入的是本机 JAR;Docker/Web 中 JAR 和插件安装在服务器数据目录。浏览器电脑上的本地路径不能直接交给 Web 服务器使用,迁移配置时也不会自动携带驱动文件。

什么时候需要 JDBC

优先使用 DBX 内置数据库类型,例如 MySQL、PostgreSQL、SQLite、Redis、MongoDB、DuckDB、ClickHouse、SQL Server、Oracle、DM、GaussDB 等。

以下情况再使用 JDBC:

  • 目标数据库不在 DBX 内置类型中
  • 内置驱动无法满足某个厂商特性
  • 你的公司统一要求使用厂商 JDBC driver
  • 你想用 JDBC 连接达梦、H2、DB2、Snowflake、SQLite JDBC 等数据库

需要准备什么

项目是否必需说明
DBX JDBC 插件必需在 DBX 设置中一键安装,用来让 DBX 调用 JDBC
Java Runtime必需本机需要能运行 java;建议 Java 17 或更高版本
数据库厂商 JDBC driver JAR必需例如 PostgreSQL、MySQL、达梦、Oracle、H2、SQLite 等驱动 JAR
JDBC URL必需JDBC URL 通常已经包含主机、端口、数据库名和参数
用户名/密码视数据库而定文件型数据库或部分认证方式可能不需要
驱动类通常可选多数现代 JDBC 驱动可以自动注册;自动识别失败时再填写

第一步:安装 Java

JDBC 插件是 Java 程序,需要本机有 Java runtime。安装后在终端确认:

java -version

如果系统提示找不到 java,需要先安装 Java。DBX 会优先使用 JAVA_HOME,其次尝试常见系统路径和 PATH 中的 java。

使用 Homebrew 安装:

brew install openjdk

如果 java -version 仍不可用,可以按 Homebrew 输出提示配置 PATH 或 JAVA_HOME。

安装 Temurin、Oracle JDK 或 Microsoft Build of OpenJDK。安装后重新打开 DBX,并确认命令行中可以运行:

java -version

Debian / Ubuntu:

sudo apt install openjdk-17-jre

Fedora:

sudo dnf install java-17-openjdk

第二步:安装 DBX JDBC 插件

在 DBX 桌面版中打开:

  1. 设置
  2. JDBC 驱动
  3. 点击 安装 JDBC 插件

安装成功后会显示类似:

已安装:v0.1.0

DBX JDBC 插件有自己的版本号,不会强制跟 DBX 主应用版本一致。主应用更新后不会自动安装 JDBC 插件;如果你手动卸载过,后续更新也不会自动装回来。

第三步:下载数据库厂商 JDBC 驱动

DBX 不会自动下载数据库厂商驱动。你需要从数据库官网或 Maven 仓库下载对应的 .jar 文件。

常见驱动示例:

数据库常见 Maven Artifact驱动类JDBC URL 示例
PostgreSQLorg.postgresql:postgresqlorg.postgresql.Driverjdbc:postgresql://localhost:5432/postgres
MySQLcom.mysql:mysql-connector-jcom.mysql.cj.jdbc.Driverjdbc:mysql://localhost:3306/test
MariaDBorg.mariadb.jdbc:mariadb-java-clientorg.mariadb.jdbc.Driverjdbc:mariadb://localhost:3306/test
达梦 DMcom.dameng:DmJdbcDriver8dm.jdbc.driver.DmDriverjdbc:dm://localhost:5236
SQL Servercom.microsoft.sqlserver:mssql-jdbccom.microsoft.sqlserver.jdbc.SQLServerDriverjdbc:sqlserver://localhost:1433;databaseName=master
Oraclecom.oracle.database.jdbc:ojdbc11oracle.jdbc.OracleDriverjdbc:oracle:thin:@//localhost:1521/ORCLPDB1
H2com.h2database:h2org.h2.Driverjdbc:h2:/tmp/dbx-h2-test
SQLiteorg.xerial:sqlite-jdbcorg.sqlite.JDBCjdbc:sqlite:/Users/me/test.db
ClickHousecom.clickhouse:clickhouse-jdbccom.clickhouse.jdbc.ClickHouseDriverjdbc:clickhouse://localhost:8123/default
DB2com.ibm.db2:jcccom.ibm.db2.jcc.DB2Driverjdbc:db2://localhost:50000/SAMPLE
Snowflakenet.snowflake:snowflake-jdbcnet.snowflake.client.jdbc.SnowflakeDriverjdbc:snowflake://account.region.snowflakecomputing.com/?db=DEMO
不同数据库和驱动版本的 URL 参数可能不同。以厂商官方文档为准。如果驱动依赖多个 JAR,请把需要的 JAR 路径都导入或填写进去。
Oracle 驱动请同时导入与 ojdbc 同版本的 com.oracle.database.nls:orai18n。基础 ojdbc jar 不支持 ZHS16GBK 等多字节字符集,缺少它时表/字段注释等元数据无法加载。通过 Maven 安装 com.oracle.database.jdbc:ojdbc* 时会自动附带同版本的 orai18n。使用 DBX 内置 Oracle 连接(默认驱动)则无需额外 JAR,已支持这些字符集。

第四步:导入 JDBC 驱动 JAR

在 DBX 中打开:

  1. 设置
  2. JDBC 驱动
  3. 在 JDBC 驱动 JAR 区域点击导入按钮,选择下载好的 .jar

也可以直接粘贴本机 JAR 路径,然后点击导入。导入后,JAR 会复制到 DBX 的应用数据目录中,之后新建 JDBC 连接时可以从下拉框选择它。

导入驱动只复制文件,不会修改系统 Java、不安装数据库客户端,也不会把驱动上传到远端。

第五步:创建 JDBC 连接

创建连接时选择 JDBC 类型。

字段怎么填
名称连接显示名,例如 H2 Test、DM Dev、Oracle Dev
JDBC URL完整 JDBC URL,例如 jdbc:postgresql://localhost:5432/postgres
用户名数据库用户名;不需要认证时可以留空
密码数据库密码;不需要认证时可以留空
驱动类(可选)自动识别失败时填写,例如 org.postgresql.Driver
驱动 JAR从已导入驱动下拉框选择,或填写本机 JAR 路径

JDBC URL 通常已经包含主机、端口和数据库名,因此 JDBC 表单不会再单独显示主机和端口。

填写完成后点击 测试。测试成功后点击 保存,连接会出现在侧边栏中。

示例:连接达梦 DM

DBX 已经内置 DM ODBC 连接类型。如果你更想使用达梦官方 JDBC 驱动,可以走 JDBC 插件。

  1. 安装 DBX JDBC 插件
  2. 安装 Java
  3. 从达梦安装目录或 Maven 仓库获取达梦 JDBC driver JAR,例如 DmJdbcDriver8.jar 或 DmJdbcDriver11.jar
  4. 在 设置 → JDBC 驱动 中导入该 JAR
  5. 新建连接,选择 JDBC
  6. 填写:
字段值
JDBC URLjdbc:dm://127.0.0.1:5236
用户名SYSDBA
密码你的达梦密码
驱动类(可选)dm.jdbc.driver.DmDriver
驱动 JAR选择已导入的达梦 JDBC JAR

达梦这里建议直接填写驱动类 dm.jdbc.driver.DmDriver,这样不依赖驱动 JAR 的自动发现配置。

示例:连接 H2 本地文件数据库

H2 很适合验证 JDBC 流程。

  1. 安装 DBX JDBC 插件
  2. 下载 H2 JDBC driver JAR
  3. 在设置中导入 h2-*.jar
  4. 新建连接,选择 JDBC
  5. 填写:
字段值
JDBC URLjdbc:h2:/tmp/dbx-h2-demo
用户名sa
密码留空
驱动类(可选)org.h2.Driver
驱动 JAR选择已导入的 H2 JAR

保存后可以执行:

CREATE TABLE users (
  id INT PRIMARY KEY,
  name VARCHAR(100)
);

INSERT INTO users VALUES (1, 'Alice');

SELECT * FROM users;

示例:连接 PostgreSQL

  1. 下载 PostgreSQL JDBC driver JAR
  2. 在设置中导入该 JAR
  3. 新建 JDBC 连接
  4. 填写:
字段值
JDBC URLjdbc:postgresql://localhost:5432/postgres
用户名postgres
密码你的 PostgreSQL 密码
驱动类(可选)org.postgresql.Driver
驱动 JAR选择已导入的 PostgreSQL JAR

如果数据库要求 SSL,可以在 JDBC URL 后添加参数:

jdbc:postgresql://localhost:5432/postgres?sslmode=require

常见问题

安装 JDBC 插件失败

检查网络是否能访问 DBX 的 GitHub Release。DBX 会尝试代理地址和 GitHub 原始地址,但代理站也可能不稳定。如果公司网络限制 GitHub,请换网络后重试。

提示找不到 Java

确认终端里可以运行:

java -version

如果终端可用但 DBX 不可用,重启 DBX。macOS 上如果 Java 只安装在 Homebrew 路径,也可以配置 JAVA_HOME。

提示 No JDBC driver was discovered

说明驱动 JAR 没有被自动识别。请在 驱动类(可选) 中填写对应驱动类,例如:

org.postgresql.Driver
com.mysql.cj.jdbc.Driver
dm.jdbc.driver.DmDriver
oracle.jdbc.OracleDriver

提示 No suitable driver

通常是 JDBC URL 和驱动不匹配。检查:

  • 是否选择了正确数据库的 driver JAR
  • JDBC URL 前缀是否正确,例如 jdbc:postgresql:、jdbc:mysql:、jdbc:dm:、jdbc:oracle:
  • 是否需要填写驱动类

能连接但看不到表

JDBC 元数据依赖数据库驱动和账号权限。检查:

  • 当前账号是否有读取 metadata 的权限
  • JDBC URL 是否连接到了正确的数据库或 schema
  • 表是否在不同 schema 下
  • 数据库驱动是否完整支持 DatabaseMetaData

一个驱动需要多个 JAR 怎么办

在连接表单的 驱动 JAR 文本框中每行填写一个 JAR 路径,或在设置里分别导入多个 JAR 后选择/补充路径。

卸载插件

在 设置 → JDBC 驱动 中点击 卸载。卸载会移除 DBX JDBC 插件本体,但会保留你已经导入的数据库厂商 driver JAR,避免下次重新安装插件时还要重新导入。

给开发者:插件协议

DBX 会启动插件可执行文件,并通过 stdin/stdout 发送 JSON Lines 请求与响应。连接建立后,DBX 会复用同一个插件进程处理该连接上的查询和元数据请求。

插件目录需要包含 manifest.json:

{
  "id": "jdbc",
  "name": "DBX JDBC Plugin",
  "version": "0.1.0",
  "protocol_version": 1,
  "description": "Adds JDBC driver support.",
  "executable": "bin/dbx-jdbc-plugin",
  "drivers": [
    {
      "id": "jdbc",
      "label": "JDBC",
      "kind": "external",
      "database_type": "jdbc"
    }
  ]
}

当前 DBX 主应用支持插件协议版本 1。如果插件 manifest 声明了不同协议版本,DBX 会拒绝加载;每次插件请求也有 30 秒超时,避免驱动进程卡住后无限阻塞应用。

第一版协议支持 testConnection、connect、executeQuery、listDatabases、listSchemas、listTables 和 getColumns。

JDBC 连接配置会保存 jdbc_driver_class 和 jdbc_driver_paths。如果一个驱动需要多个 JAR,请把所有路径都绑定到连接上,这样元数据和查询调用会使用同一套 classpath。