本文說明如何使用 Spanner JDBC 驅動程式,將 Java 應用程式連線至 Spanner Omni,並執行 SQL 陳述式。
Java Database Connectivity (JDBC) 是一種標準 Java API,可讓應用程式以一致的方式與關聯式資料庫互動。Spanner JDBC 驅動程式與 Spanner Omni 的運作方式,與 Spanner 相同。
使用 JDBC 驅動程式時,您可以搭配 Spanner Omni 運用標準 JDBC 相容工具和程式庫。
Spanner Omni JDBC 連線支援三種安全模式:純文字、TLS 和 mTLS。
詳情請參閱 Spanner 說明文件中的「開始使用 JDBC 中的 Spanner」。
連結網址注意事項
由於 Spanner Omni 並未直接連線至Google Cloud 專案,因此 JDBC 連線網址中不需要 projects/name 元件。同樣地,由於每個 Spanner Omni 部署都有單一的現有執行個體 (instances/default),因此 instances/name 元件為選用。
建立 Spanner Omni 連線
下列範例說明如何使用 Spanner JDBC 驅動程式,為每個支援的安全模式建立與 Spanner Omni 的連線:
純文字通訊
如要建立純文字通訊,請使用類似下列的連線網址:
String url = "jdbc:spanner://HOST_ADDRESS:PORT/databases/DATABASE_ID;usePlainText=true;isExperimentalHost=true";
try {
java.sql.Connection connection = DriverManager.getConnection(url);
try {
ResultSet rs = connection.createStatement().executeQuery("SELECT * FROM Singers");
while (rs.next()) {
System.out.print(rs.getLong(1) + "\t");
System.out.println(rs.getString(2));
}
} catch (Exception e) {
System.out.println(e.getMessage());
}
} catch (Exception e) {
System.out.println(e.getMessage());
}
透過 TLS 或 mTLS 將驗證權杖用於 Spanner Omni 端點時,請將 SPANNER_EXPERIMENTAL_HOST_AUTH_TOKEN 環境變數設為 Spanner Omni CLI 產生的驗證權杖路徑。如為不需要憑證的連線,請將這個變數設為未設定。不建議用戶端使用驗證權杖,因為 Spanner Omni 產生的權杖會過期,且需要使用 Spanner Omni CLI 手動更新。
TLS 連線
如要建立 TLS 連線,請將 CA 憑證新增至 Java 信任儲存區,或在執行應用程式時直接傳遞憑證,詳情請參閱 Java SDK TLS 指示。建立 TLS 連線時,JDBC 網址不需要任何其他參數:
String url = "jdbc:spanner://HOST_ADDRESS:PORT/databases/DATABASE_ID?isExperimentalHost=true";
mTLS 連線
如要建立 mTLS 連線,JDBC 網址需要兩個額外參數:clientCertificate 和 clientKey。這些參數必須分別指定用戶端憑證和用戶端私密金鑰的檔案路徑。如 Java SDK mTLS 指示所述,用戶端私密金鑰必須採用 Java 相容格式:
String url = "jdbc:spanner://HOST_ADDRESS:PORT/databases/DATABASE_ID;clientCertificate=PATH_TO_CLIENT_CERT;clientKey=PATH_TO_CLIENT_KEY;isExperimentalHost=true";