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";