Utilizza il driver JDBC per connetterti a Spanner Omni

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