Questo documento mostra come utilizzare il driver JDBC Spanner per connettere le applicazioni Java a Spanner Omni ed eseguire istruzioni SQL.
JDBC (Java Database Connectivity) è 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 JDBC Spanner Omni supportano tre modalità di sicurezza: testo non crittografato, TLS e mTLS.
Per saperne di più, consulta la sezione Introduzione a Spanner in JDBC nella documentazione di Spanner.
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. Analogamente, poiché ogni
deployment Spanner Omni ha una singola istanza già creata
(instances/default), il componente instances/name è
facoltativo.
Stabilire una connessione Spanner Omni
Gli esempi seguenti mostrano come stabilire una connessione con Spanner Omni utilizzando il driver JDBC di Spanner per ogni modalità di sicurezza supportata:
Comunicazione in testo normale
Per stabilire una comunicazione in testo normale, utilizza un URL di connessione simile al seguente:
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());
}
Quando utilizzi un token di autenticazione con TLS o mTLS per un
endpoint Spanner Omni, imposta la
variabile di ambiente SPANNER_EXPERIMENTAL_HOST_AUTH_TOKEN sul
percorso del token di autenticazione generato dalla CLI Spanner Omni. Per
le connessioni che non richiedono credenziali, lascia questa variabile non impostata.
I token di autenticazione non sono consigliati per l'utilizzo da parte dei client perché
i token generati da Spanner Omni scadono e richiedono il rinnovo
manuale con la CLI Spanner Omni.
Connessione TLS
Per stabilire una connessione TLS, aggiungi il certificato CA al truststore Java o trasmettilo direttamente quando esegui l'applicazione come indicato nelle istruzioni TLS dell'SDK Java. L'URL JDBC non richiede parametri aggiuntivi durante la creazione di una connessione TLS:
String url = "jdbc:spanner://HOST_ADDRESS:PORT/databases/DATABASE_ID?isExperimentalHost=true";
Connessione mTLS
Per stabilire una connessione mTLS, l'URL JDBC richiede due parametri aggiuntivi: clientCertificate e clientKey. Questi parametri devono specificare i percorsi dei file del certificato client e della chiave privata client, rispettivamente. La chiave privata del client deve essere in un formato compatibile con Java, come indicato nelle istruzioni mTLS dell'SDK Java:
String url = "jdbc:spanner://HOST_ADDRESS:PORT/databases/DATABASE_ID;clientCertificate=PATH_TO_CLIENT_CERT;clientKey=PATH_TO_CLIENT_KEY;isExperimentalHost=true";