Spanner JDBC 驱动程序常见问题解答

本页面介绍了 Google 推荐和编写的 Spanner JDBC 驱动程序。这里还存在一个由 Simba 创建的 JDBC 驱动程序(仅仅适用于 GoogleSQL 方言)。

Google 提供了一个适用于 Spanner 的开源 JDBC 驱动程序。该开源驱动程序允许应用通过 Java Database Connectivity (JDBC) API 访问 Spanner。

本页面解答了有关 Spanner JDBC 驱动程序的常见问题。 如需了解如何使用该驱动程序,请参阅将 JDBC 连接到 GoogleSQL 方言数据库

我可以使用此驱动程序发出数据操纵语言 (DML) 和数据定义语言 (DDL) 语句吗?

可以,此驱动程序支持 DML 和 DDL 语句。

此驱动程序如何处理 Spanner 父子表或交错表关系?

交错表关系可映射到 JDBC 中的外键关系。在 Spanner 中,与父表交错的子表中的记录的主键取决于关联的父表记录的主键。Spanner 将子表主键的父主键部分定义为外键,并引用父表的主键。因此,在 DatabaseMetaData 中调用外键元数据可以导航交错表关系。如需了解详情,请参阅架构简介

此驱动程序是否支持所有 Spanner 数据类型?

Spanner JDBC 驱动程序不支持 Spanner 的 STRUCT 数据类型。其他所有类型均有相应的映射。

此驱动程序是否支持索引?

可以。您可以使用适当的查询语法SELECT 查询中使用索引。该开源驱动程序还可以将索引作为 DDL 语句进行创建和修改。使用 DatabaseMetaData.getIndexInfo() 方法即可访问有关特定索引的信息。

此驱动程序是否支持参数化查询?

支持,此驱动程序支持位置参数化。

我需要提供自己的连接池吗?

Spanner JDBC 驱动程序通过跟踪已打开的所有连接以及用于打开这些连接的连接属性在内部处理池化。例如,当需要与现有连接具有相同连接属性的新连接时,这些池连接会重复使用。如果在过去 60 秒内未使用连接,则连接会自动关闭。

如果您想提供自己的池,可以使用任何标准 JDBC 连接池。将池配置为使用驱动程序类 com.google.cloud.spanner.jdbc.JdbcDriver,并设置有效的 Spanner JDBC 连接网址。

使用此驱动程序时需要考虑其他限制吗?

此驱动程序的功能限制由底层系统定义。请参阅 Spanner 的配额和限制

我如何获得对此驱动程序的支持?

请参阅我们的支持页面了解支持选项。

后续步骤

了解如何将 JDBC 连接到 GoogleSQL 方言数据库