Questo documento mostra come utilizzare il driver JDBC Spanner per connettere le applicazioni Java a Spanner Omni ed eseguire istruzioni SQL.
Java Database Connectivity (JDBC) è un'API Java standard che fornisce un modo coerente per le applicazioni di interagire con i database relazionali. Il driver JDBC di Spanner funziona con Spanner Omni nello stesso modo in cui funziona con Spanner.
Utilizzando il driver JDBC, puoi sfruttare strumenti e librerie standard compatibili con JDBC con Spanner Omni.
Le connessioni Spanner Omni JDBC supportano testo non crittografato, TLS, TLS con credenziali e mTLS.
Per saperne di più, consulta la sezione Introduzione a Spanner in JDBC della documentazione di Spanner.
Prima di iniziare
Per utilizzare Spanner Omni con il driver JDBC, utilizza la versione 2.41.0 o successive del driver JDBC di Spanner.
Se utilizzi Maven senza la distinta base (BOM), aggiungi quanto segue alle dipendenze del file pom.xml:
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>google-cloud-spanner-jdbc</artifactId>
<version>2.41.0</version>
</dependency>
Considerazioni sull'URL di connessione
Poiché Spanner Omni non è connesso direttamente a un progettoGoogle Cloud , il componente projects/name non è richiesto nell'URL di connessione JDBC. Allo stesso modo, poiché ogni
deployment di Spanner Omni ha una singola istanza già creata
(instances/default), il componente instances/name è
facoltativo.
Per connettere il driver JDBC a Spanner Omni anziché a
Spanner, aggiungi la proprietà ;type=omni all'URL di connessione.
Stabilire una connessione Spanner Omni
Gli esempi seguenti mostrano come stabilire una connessione con Spanner Omni utilizzando il driver JDBC di Spanner per ogni configurazione di sicurezza supportata:
Testo normale
Per stabilire una connessione in testo normale, utilizza un URL di connessione simile al seguente:
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
Per stabilire una connessione TLS, aggiungi il certificato CA al truststore Java o specifica un truststore personalizzato quando esegui l'applicazione, come descritto in Configurare il truststore Java. L'URL JDBC non richiede parametri di autenticazione aggiuntivi:
String url = "jdbc:spanner://HOST_ADDRESS:PORT/databases/DATABASE_ID;type=omni";
TLS con credenziali
Per stabilire una connessione TLS con l'autenticazione di nome utente e password, aggiungi
il certificato CA al truststore Java come descritto in
Configurare il truststore Java e specifica le proprietà
username e password nell'URL JDBC:
String url = "jdbc:spanner://HOST_ADDRESS:PORT/databases/DATABASE_ID;type=omni;username=USERNAME;password=PASSWORD";
mTLS
Per stabilire una connessione mTLS, aggiungi il certificato CA al truststore Java come
descritto in Configurare il truststore Java
e specifica i parametri clientCertificate e clientKey nell'URL JDBC.
La chiave privata del client deve essere in un formato PKCS#8 compatibile con Java, come descritto nelle
istruzioni mTLS dell'SDK Java:
String url = "jdbc:spanner://HOST_ADDRESS:PORT/databases/DATABASE_ID;type=omni;clientCertificate=PATH_TO_CLIENT_CERT;clientKey=PATH_TO_CLIENT_KEY";