In diesem Dokument wird beschrieben, wie Sie den Cloud Spanner-JDBC-Treiber verwenden, um Ihre Java-Anwendungen mit Spanner Omni zu verbinden und SQL-Anweisungen auszuführen.
Java Database Connectivity (JDBC) ist eine Standard-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.
Cloud Spanner Omni-JDBC-Verbindungen unterstützen Nur-Text, TLS, TLS mit Anmeldedaten und mTLS.
Weitere Informationen finden Sie unter Erste Schritte mit Spanner in JDBC in der Spanner-Dokumentation.
Hinweis
Wenn Sie Spanner Omni mit dem JDBC-Treiber verwenden möchten, verwenden Sie den Cloud Spanner-JDBC-Treiber in Version 2.41.0 oder höher.
Wenn Sie Maven ohne 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 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.
Wenn Sie den JDBC-Treiber mit Spanner Omni anstelle von Spanner verbinden möchten, fügen Sie der Verbindungs-URL die Eigenschaft ;type=omni hinzu.
Spanner Omni-Verbindung herstellen
In den folgenden Beispielen wird gezeigt, wie Sie für jede unterstützte Sicherheitskonfiguration eine Verbindung mit Spanner Omni über den Cloud Spanner-JDBC-Treiber herstellen:
Nur-Text
Verwenden Sie eine Verbindungs-URL wie die folgende, um eine Nur-Text-Verbindung herzustellen:
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
Wenn Sie eine TLS-Verbindung herstellen möchten, 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 Passwortauthentifizierung herstellen möchten, fügen Sie
das CA-Zertifikat dem Java-Truststore hinzu, wie unter
Java-Truststore konfigurieren beschrieben, und geben Sie die
username und password Eigenschaften in der JDBC-URL an:
String url = "jdbc:spanner://HOST_ADDRESS:PORT/databases/DATABASE_ID;type=omni;username=USERNAME;password=PASSWORD";
mTLS
Wenn Sie eine mTLS-Verbindung herstellen möchten, 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 im Java-kompatiblen PKCS#8-Format vorliegen, wie in
der Anleitung zu 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";