JDBC-Treiber zum Herstellen einer Verbindung zu Spanner Omni verwenden

In diesem Dokument wird beschrieben, wie Sie mit dem Spanner-JDBC-Treiber Ihre Java-Anwendungen mit Spanner Omni verbinden und SQL-Anweisungen ausführen.

Java Database Connectivity (JDBC) ist eine Standard-Java-API, die Anwendungen eine konsistente Möglichkeit bietet, mit relationalen Datenbanken zu interagieren. Der Spanner-JDBC-Treiber funktioniert mit Spanner Omni genauso wie mit Spanner.

Mit dem JDBC-Treiber können Sie standardmäßige JDBC-kompatible Tools und Bibliotheken mit Spanner Omni verwenden.

Spanner Omni-JDBC-Verbindungen unterstützen drei Sicherheitsmodi: Nur-Text, TLS und mTLS.

Weitere Informationen finden Sie unter Erste Schritte mit Spanner in JDBC in der Spanner-Dokumentation.

Überlegungen zur Verbindungs-URL

Da Spanner Omni nicht direkt mit einem Google Cloud Projekt verbunden ist, ist die projects/name Komponente in der JDBC-Verbindungs-URL nicht erforderlich. Da jede Spanner Omni-Bereitstellung eine einzelne, bereits erstellte Instanz (instances/default) hat, ist die instances/name Komponente optional.

Spanner Omni-Verbindung herstellen

In den folgenden Beispielen wird gezeigt, wie Sie für jeden unterstützten Sicherheitsmodus eine Verbindung zu Spanner Omni mit dem Spanner-JDBC-Treiber herstellen:

Nur-Text-Kommunikation

Verwenden Sie eine Verbindungs-URL wie die folgende, um eine Nur-Text-Kommunikation herzustellen:

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());
    }

Wenn Sie ein Authentifizierungstoken mit TLS oder mTLS für einen Spanner Omni-Endpunkt verwenden, legen Sie die Umgebungsvariable SPANNER_EXPERIMENTAL_HOST_AUTH_TOKEN auf den Pfad des Authentifizierungstokens fest, das von der Spanner Omni-CLI generiert wurde. Lassen Sie diese Variable für Verbindungen, für die keine Anmeldedaten erforderlich sind, nicht festgelegt. Authentifizierungstokens werden für die Clientnutzung nicht empfohlen, da von Spanner Omni generierte Tokens ablaufen und manuell mit der Spanner Omni-CLI erneuert werden müssen.

TLS-Verbindung

Fügen Sie das CA-Zertifikat dem Java-Truststore hinzu oder übergeben Sie es direkt, wenn Sie die Anwendung wie in der TLS-Anleitung für das Java SDK beschrieben ausführen, um eine TLS-Verbindung herzustellen. Für die JDBC-URL sind beim Herstellen einer TLS-Verbindung keine zusätzlichen Parameter erforderlich:

String url = "jdbc:spanner://HOST_ADDRESS:PORT/databases/DATABASE_ID?isExperimentalHost=true";

mTLS-Verbindung

Für eine mTLS-Verbindung sind in der JDBC-URL zwei zusätzliche Parameter erforderlich: clientCertificate und clientKey. Diese Parameter müssen die Dateipfade zum Clientzertifikat bzw. zum privaten Clientschlüssel angeben. Der private Clientschlüssel muss in einem Java-kompatiblen Format vorliegen, wie in der mTLS-Anleitung für das Java SDK beschrieben:

String url = "jdbc:spanner://HOST_ADDRESS:PORT/databases/DATABASE_ID;clientCertificate=PATH_TO_CLIENT_CERT;clientKey=PATH_TO_CLIENT_KEY;isExperimentalHost=true";