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