Questo documento mostra come utilizzare il driver JDBC di 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 gli strumenti e le librerie standard compatibili con JDBC con Spanner Omni.
Le connessioni JDBC di Spanner Omni supportano testo normale, TLS, TLS con credenziali e mTLS.
Per ulteriori informazioni, consulta la sezione Introduzione a Spanner in JDBC nella 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 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
Google Cloud progetto, il projects/name
componente non è obbligatorio nell'URL di connessione JDBC. Allo stesso modo, poiché ogni
deployment di Spanner Omni ha una singola istanza già creata
(instances/default), il instances/name componente è
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 tramite 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 formato PKCS#8 conforme a Java, come descritto in
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";