JDBC-Treiber zum Herstellen einer Verbindung zu Spanner Omni verwenden

In diesem Dokument wird beschrieben, wie Sie den Spanner-JDBC-Treiber verwenden, um Ihre Java-Anwendungen mit Spanner Omni zu verbinden und SQL-Anweisungen auszuführen.

Java Database Connectivity (JDBC) ist eine standardmäßige Java-API, die Anwendungen eine einheitliche Möglichkeit bietet, mit relationalen Datenbanken zu interagieren. Der Cloud 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 Nur-Text, TLS, TLS mit Anmeldedaten und mTLS.

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

Hinweis

Wenn Sie Spanner Omni mit dem JDBC-Treiber verwenden möchten, benötigen Sie den Spanner-JDBC-Treiber in Version 2.41.0 oder höher.

Wenn Sie Maven ohne die Materialliste (Bill of Materials, BOM) verwenden, fügen Sie den Abhängigkeiten der Datei pom.xml Folgendes hinzu:

<dependency>
  <groupId>com.google.cloud</groupId>
  <artifactId>google-cloud-spanner-jdbc</artifactId>
  <version>2.41.0</version>
</dependency>

Hinweise zur Verbindungs-URL

Da Spanner Omni nicht direkt mit einemGoogle 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.

Wenn Sie den JDBC-Treiber mit Spanner Omni anstelle von Spanner verbinden möchten, hängen Sie die Property ;type=omni an die Verbindungs-URL an.

Spanner Omni-Verbindung herstellen

Die folgenden Beispiele zeigen, wie Sie mit dem Spanner-JDBC-Treiber für jede unterstützte Sicherheitskonfiguration eine Verbindung zu Spanner Omni herstellen:

Nur-Text

Verwenden Sie für eine Nur-Text-Verbindung eine Verbindungs-URL, die der folgenden ähnelt:

String url = "jdbc:spanner://HOST_ADDRESS:PORT/databases/DATABASE_ID;usePlainText=true;type=omni";
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());
}

TLS

Um eine TLS-Verbindung herzustellen, fügen Sie das CA-Zertifikat dem Java-Truststore hinzu oder geben Sie beim Ausführen der Anwendung einen benutzerdefinierten Truststore an, wie unter Java-Truststore konfigurieren beschrieben. Für die JDBC-URL sind keine zusätzlichen Authentifizierungsparameter erforderlich:

String url = "jdbc:spanner://HOST_ADDRESS:PORT/databases/DATABASE_ID;type=omni";

TLS mit Anmeldedaten

Wenn Sie eine TLS-Verbindung mit Nutzername und Passwort herstellen möchten, fügen Sie das CA-Zertifikat dem Java-Truststore hinzu, wie unter Java-Truststore konfigurieren beschrieben, und geben Sie die Attribute username und password in der JDBC-URL an:

String url = "jdbc:spanner://HOST_ADDRESS:PORT/databases/DATABASE_ID;type=omni;username=USERNAME;password=PASSWORD";

mTLS

Um eine mTLS-Verbindung herzustellen, fügen Sie das CA-Zertifikat dem Java-Truststore hinzu, wie unter Java-Truststore konfigurieren beschrieben, und geben Sie die Parameter clientCertificate und clientKey in der JDBC-URL an. Der private Clientschlüssel muss in einem Java-kompatiblen PKCS#8-Format vorliegen, wie in der Anleitung für mTLS im Java SDK beschrieben:

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