PostgreSQL 教程: 在 DBeaver 中设置 JDBC 驱动程序

十月 28, 2023

摘要:在本教程中,您将学习如何在 DBeaver 中设置 PostgreSQL JDBC 驱动程序。

您可以使用预先配置的数据库驱动程序,或者创建新的驱动程序。

DBeaver 中有一个预配置的 PostgreSQL JDBC 驱动程序。但有时您需要使用指定版本的驱动程序连接到数据库,该版本可能会比 DBeaver 中配置的版本旧或新。

您需要的只是数据库的 JDBC 驱动程序。剩下的就很容易了。

获取 JDBC 驱动程序

JDBC 驱动是一个可以连接某些本地或远程数据库服务器进行操作的 Java 程序。它通常提供了覆盖数据库 100% 功能所需的所有访问接口。JDBC 驱动程序通常由数据库供应商提供,以允许客户使用他们的数据库。

JDBC 驱动程序由一个或多个jar文件组成。Jar 文件是一个包含程序代码和一些其他文件的库。您需要访问 PostgreSQL JDBC 驱动的下载页面,获取驱动程序的 jar 文件,然后将它们添加到 DBeaver。

在 DBeaver 中添加驱动配置

打开驱动管理器对话框

您可以从主菜单打开驱动管理器,或者也可以从数据库导航器下拉菜单中进入:

img

进入到驱动管理器对话框:

img

添加新的驱动程序

只需单击 “新建” 按钮,并创建一个新的驱动程序。在驱动程序编辑对话框中,您需要输入所有必需的信息:

主要参数

img

参数 描述
驱动程序名称 驱动程序名称。这可以是任何你喜欢的名字
驱动类型 驱动提供方。在 99% 的情况下,您将需要通用驱动程序(JDBC 提供方)
驱动类名 JDBC 驱动类名。您可以从文档中获取它或在 jar 文件中找到它(请参阅 “查找类” 按钮说明)
URL 模板 驱动程序 URL 模板。您可以将其留空。但在这种情况下,您需要准备好为每个连接设置 JDBC URL。最好定义一个有效的 URL 模板,这将大大简化连接的创建。详细说明请参见 “URL 模板”。
默认端口 默认数据库端口。您可以从文档中查找到它,或者将其留空。
嵌入式 可为无服务器数据库启用它。该标志会影响与网络/连接管理相关的一些配置选项
无需验证 这意味着驱动程序不需要身份验证(不显示用户/密码字段)
类别 驱动程序类别,已弃用
ID 驱动程序唯一 ID,可忽略它
描述 驱动程序描述,在某些对话框/向导中显示为提示

驱动库

这是 jar 文件、二进制库(dll 等)以及驱动程序所需的任何其他文件的列表。在大多数情况下,您只需要 jar 文件。单击 “添加文件” 添加单个 jar 文件,单击 “添加文件夹” 添加包含 Java 类/资源的文件夹,单击 “添加工件” 添加 Maven 依赖库配置(见下文)。

添加 jar 文件后,您将可以看到这些 jar 文件中找到的所有 JDBC 驱动程序类。只需单击 “查找类” 按钮,DBeaver 就会显示所有类。大多数情况下,驱动程序中只有一个驱动程序类。如果数量较多,则需要参考驱动程序的文档。

Maven 依赖库配置

DBeaver 可以直接从 Maven 仓库(它是 Java 库的全球公共仓库,这些库通常都是开源的)下载驱动程序 jar。如果您的数据库驱动程序发布在某个公共仓库上,您可以使用此功能。Maven 工件比普通 jar 文件更好,因为您可以查看所有现有驱动程序版本,并且可以在运行时更改驱动程序版本,而无需重新配置任何驱动程序属性。

要在现有驱动程序中添加和编辑工件,请选择 数据库 -> 驱动管理器 -> 选择驱动 ->

要编辑现有驱动程序中的工件,请双击该库。要在现有驱动程序中添加工件,请单击添加工件

对于添加工件,DBeaver 支持两种模式:依赖声明手动声明工件。编辑工件仅支持手动声明工件模式。

依赖声明

该模式会解析输入的文本,并根据解析结果创建工件。它支持下面列出的多种输入格式。

Dependency Declaration

支持的格式

  • 简短的 Gradle 描述

    group:artifact_name:version

  • Maven

    • 对于单个工件

      <dependency>
          <groupId>group</groupid>
          <artifactId>artifact</artifactId>
          <version>version</version>
      </dependency>
      
    • 对于多个工件

      <dependencies>
          <dependency>
              <groupId>group</groupid>
              <artifactId>artifact</artifactId>
              <version>version</version>
          </dependency>
          <dependency>
              <groupId>group</groupid>
              <artifactId>artifact</artifactId>
              <version>version</version>
          </dependency>
          <dependency>
              <groupId>group</groupid>
              <artifactId>artifact</artifactId>
              <version>version</version>
          </dependency>
      <dependencies>
      

手动声明工件

它允许您手动设置参数。它允许您在每个对话框中仅添加一项。

Declare artifacts manually

保存驱动设置,添加连接

完成驱动程序配置后,只需按 “确定” 按钮即可。现在您可以创建连接

如果稍后需要更改某些驱动程序属性,您可以直接从连接属性对话框访问它们:

img

URL 模板

JDBC 驱动程序使用 URL 来标识远程服务器 - 类似于经典的网页 URL 字符串。通常,URL 的形式为jdbc:vendor:host:port/database,例如 ‘jdbc:postgresql:localhost:5432/postgres’。编辑这么长且不明显的字符串不是很方便。DBeaver 可以根据连接参数(如主机、端口等)构造此 URL。

例如,上面的 URL 模板为:jdbc:postgresql://{host}:{port}/{database},host、port 和 database 是您需要在连接配置页面上输入的参数。

支持的 URL 变量:

参数 描述
{host} 数据库服务器主机名
{port} 数据库服务器端口号
{database} 目标数据库名称
{server} 目标服务器名称(很少使用)
{folder} 文件夹路径(在本地文件系统上)。用于嵌入式驱动程序
{file} 文件路径(在本地文件系统上)。用于嵌入式驱动程序

高级设置

对于大多数驱动程序,您不需要更改任何高级属性。但在某些情况下,您可以将其用来调整驱动程序行为,例如为了更好的性能或用于结构修复。

img

主要参数

参数 描述
驱动程序支持索引 驱动程序支持表索引
驱动程序支持存储代码 该驱动程序是否支持存储代码(存储过程、函数、包等)
驱动程序支持引用 驱动程序支持表引用(外键)
驱动程序支持 SELECT count(*) 子句 驱动程序支持 SELECT count(*) 子句
驱动程序支持视图 驱动程序支持表视图
拆分存储过程和函数 在不同目录下显示存储过程和函数
脚本分隔符 脚本中分隔 SQL 查询的文字
脚本分隔符重新定义器 重新定义脚本分隔符值的 SQL 子句
在查询语句后使用脚本分隔符 在每个 SQL 查询后保留 SQL 脚本分隔符
在 SQL 代码块后使用脚本分隔符 在 SQL 脚本代码块(BEGIN/END)之后保留 SQL 脚本分隔符
字符串转义字符 字符串中用于转义特殊符号的字符
元模型类型 元数据读取模型的类型 - 标准的或索引的
所有对象模式 所有元数据对象的 SQL 模式
省略目录 不要读取和使用目录(又称数据库)信息
省略单个目录 如果服务器上只有一个目录,则隐藏目录(数据库)
省略模式 不要读取和使用模式信息
省略单一模式 如果服务器上只有一个模式,则隐藏模式
使用模式过滤器 当数据库不支持目录时,使用 JDBC 模式过滤器。否则,只需读取所有数据库模式,并在客户端进行过滤
省略类型缓存 不要使用驱动程序提供的数据类型
关机参数 数据库关闭 URL 参数
创建数据库参数 数据库创建 URL 参数
驱动程序支持多个结果集 驱动程序支持单个查询的多个结果集
驱动程序支持结果集限制 驱动程序支持多个结果集限制(最大行数)
驱动程序支持结构缓存 驱动程序支持结构缓存读取。用于模式、列、键等信息
驱动程序支持 TRUNCATE 操作 驱动程序支持 TRUNCATE 命令。它比没有条件的 DELETE 快得多

查询 - 自定义驱动关联查询

参数 描述
获取活动数据库 获取活动数据库名称的查询
设置活动数据库 更改活动数据库的查询
关闭数据库 关闭活动数据库连接的查询。用于一些嵌入式数据库
PING 查询 检查连接状态的查询
Dual 表名 用于表达式求值的虚拟 “DUAL” 表的名称
活动对象类型 可选对象的类型(模式、目录)
驱动程序支持结果滚动 驱动程序支持结果集滚动
引用保留字 如果列名/表名与保留的 SQL 关键字冲突,则引用它们
在搜索查询中转义 LIKE 掩码 用于访问 JDBC 元数据 API。默认情况下启用,但对于某些(损坏的)驱动程序应禁用

DDL - 生成选项

参数 描述
删除列的短语法 使用 “ALTER TABLE DROP 列名”,而不是标准语法
删除列 - 使用括号 使用 “ALTER TABLE DROP (列名)”,而不是标准语法
使用旧版 SQL 方言生成 DDL 使用旧版 SQL 方言生成 DDL
在 ALTER TABLE 查询中添加 COLUMN 关键字 在 ALTER TABLE 查询中,在关键字 ADD 之后、列名之前添加 COLUMN 关键字

格式化 - SQL 值格式

参数 描述
时间戳格式 时间戳列的格式模式
日期格式 日期列的格式模式
时间格式 时间列的格式模式