Ce document explique comment utiliser le pilote JDBC Spanner pour connecter vos applications Java à Spanner Omni et exécuter des instructions SQL.
Java Database Connectivity (JDBC) est une API Java standard qui fournit aux applications un moyen cohérent d'interagir avec les bases de données relationnelles. Le pilote JDBC Spanner fonctionne avec Spanner Omni de la même manière qu'avec Spanner.
En utilisant le pilote JDBC, vous pouvez exploiter des outils et des bibliothèques standards compatibles avec JDBC avec Spanner Omni.
Les connexions JDBC Spanner Omni sont compatibles avec le texte brut, TLS, TLS avec identifiants et mTLS.
Pour en savoir plus, consultez Premiers pas avec Spanner dans JDBC dans la documentation Spanner.
Avant de commencer
Pour utiliser Spanner Omni avec le pilote JDBC, utilisez la version 2.41.0 ou ultérieure du pilote JDBC Spanner.
Si vous utilisez Maven sans la nomenclature (BOM), ajoutez les éléments suivants aux dépendances du fichier pom.xml :
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>google-cloud-spanner-jdbc</artifactId>
<version>2.41.0</version>
</dependency>
Remarques concernant l'URL de connexion
Étant donné que Spanner Omni n'est pas directement connecté à un
Google Cloud projet, le projects/name
composant n'est pas requis dans l'URL de connexion JDBC. De même, étant donné que chaque
déploiement Spanner Omni ne comporte qu'une seule instance déjà créée
(instances/default), le composant instances/name est
facultatif.
Pour connecter le pilote JDBC à Spanner Omni au lieu de Spanner, ajoutez la propriété ;type=omni à l'URL de connexion.
Établir une connexion Spanner Omni
Les exemples suivants montrent comment établir une connexion avec Spanner Omni à l'aide du pilote JDBC Spanner pour chaque configuration de sécurité compatible :
Texte brut
Pour établir une connexion en texte brut, utilisez une URL de connexion semblable à la suivante :
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
Pour établir une connexion TLS, ajoutez le certificat CA au truststore Java ou spécifiez un truststore personnalisé lorsque vous exécutez l'application, comme décrit dans Configurer le truststore Java. L'URL JDBC ne nécessite aucun paramètre d'authentification supplémentaire :
String url = "jdbc:spanner://HOST_ADDRESS:PORT/databases/DATABASE_ID;type=omni";
TLS avec identifiants
Pour établir une connexion TLS avec authentification par nom d'utilisateur et mot de passe, ajoutez
le certificat CA au truststore Java, comme décrit dans
Configurer le truststore Java, et spécifiez les
username et password propriétés dans l'URL JDBC :
String url = "jdbc:spanner://HOST_ADDRESS:PORT/databases/DATABASE_ID;type=omni;username=USERNAME;password=PASSWORD";
mTLS
Pour établir une connexion mTLS, ajoutez le certificat CA au truststore Java, comme
décrit dans Configurer le truststore Java,
et spécifiez les paramètres clientCertificate et clientKey dans l'URL JDBC.
La clé privée du client doit être au format PKCS#8 compatible avec Java, comme décrit dans
les instructions mTLS du SDK Java :
String url = "jdbc:spanner://HOST_ADDRESS:PORT/databases/DATABASE_ID;type=omni;clientCertificate=PATH_TO_CLIENT_CERT;clientKey=PATH_TO_CLIENT_KEY";