您可以将 PostgreSQL JDBC 驱动程序和 Spanner JDBC 驱动程序与 Spanner PostgreSQL 方言数据库搭配使用。本页介绍了如何使用这两种驱动程序连接到数据库。
PostgreSQL JDBC 驱动程序
本部分介绍了如何将 PostgreSQL JDBC 驱动程序连接到 Spanner 中的 PostgreSQL 方言数据库。JDBC 是 PostgreSQL 的标准 Java 驱动程序。
使用 PostgreSQL JDBC 驱动程序需要使用 PGAdapter 在 PostgreSQL 网络协议和 Spanner 网络协议之间进行转换。您可以将 PGAdapter 添加为依赖项,并在应用的进程内运行它。
- 将 PGAdapter 和 PostgreSQL JDBC 驱动程序添加为应用的依赖项。
- 在应用的进程内启动 PGAdapter。
OptionsMetadata.Builder builder = OptionsMetadata.newBuilder() .setProject("my-project") .setInstance("my-instance") .setPort(5432); ProxyServer server = new ProxyServer(builder.build()); server.startServer(); server.awaitRunning();
替换以下内容:
- my-project:您的 PostgreSQL 方言数据库所在的 Google Cloud项目的 ID。
- my-instance:您的 PostgreSQL 方言数据库所在的 Spanner 实例的 ID。
- 5432:PGAdapter 的运行端口号。将端口设置为 `0` 以使用动态分配的端口。
- 确保已加载 PostgreSQL JDBC 驱动程序。
Class.forName("org.postgresql.Driver"); try (Connection connection = DriverManager.getConnection("jdbc:postgresql://localhost:5432/my-database")) { try (ResultSet resultSet = connection.createStatement().executeQuery("select 'Hello world!' as hello")) { while (resultSet.next()) { System.out.printf( "Greetings from Cloud Spanner PostgreSQL: %s\n", resultSet.getString(1)); } } }
替换以下内容:
- localhost:PGAdapter 运行所在的主机。
- 5432:PGAdapter 正在运行的端口号。
- my-database:PostgreSQL 方言数据库的名称。
PGAdapter GitHub 代码库包含一个 有效的示例应用。
Spanner JDBC 驱动程序
本部分介绍如何使用 Spanner JDBC 驱动程序连接到 PostgreSQL 方言数据库。
- 将 Spanner JDBC 驱动程序作为依赖项添加到您的应用。
- 使用 Spanner JDBC 连接网址连接到 PostgreSQL 方言数据库。
try (Connection connection = DriverManager.getConnection( "jdbc:cloudspanner:/projects/my-project/instances/my-instance/databases/my-database")) { try (ResultSet resultSet = connection.createStatement().executeQuery("select 'Hello world!' as hello")) { while (resultSet.next()) { System.out.printf( "Greetings from Cloud Spanner PostgreSQL: %s\n", resultSet.getString(1)); } } }
替换以下内容:
- my-project:您的 PostgreSQL 方言数据库所在的 Google Cloud项目的 ID。
- my-instance:您的 PostgreSQL 方言数据库所在的 Spanner 实例的 ID。
- my-database:PostgreSQL 方言数据库的名称。
该驱动程序会自动检测指定数据库的 SQL 方言。连接网址中不需要方言参数。
后续步骤
- 详细了解 PGAdapter。
- 如需详细了解 PostgreSQL JDBC 驱动程序连接选项,请参阅 PGAdapter GitHub 代码库中的 PGAdapter - JDBC 连接选项。