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 permet aux applications d'interagir de manière cohérente 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 trois modes de sécurité : texte brut, TLS et mTLS.
Pour en savoir plus, consultez Premiers pas avec Spanner dans JDBC dans la documentation Spanner.
Considérations relatives aux URL de connexion
Étant donné que Spanner Omni n'est pas directement connecté à un projetGoogle Cloud , le composant projects/name n'est pas requis dans l'URL de connexion JDBC. De même, comme chaque déploiement Spanner Omni ne comporte qu'une seule instance déjà créée (instances/default), le composant instances/name est facultatif.
Établir une connexion Spanner Omni
Les exemples suivants montrent comment établir une connexion avec Spanner Omni à l'aide du pilote JDBC Spanner pour chaque mode de sécurité compatible :
Communication en texte brut
Pour établir une communication en texte brut, utilisez une URL de connexion semblable à la suivante :
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());
}
Lorsque vous utilisez un jeton d'authentification avec TLS ou mTLS pour un point de terminaison Spanner Omni, définissez la variable d'environnement SPANNER_EXPERIMENTAL_HOST_AUTH_TOKEN sur le chemin d'accès au jeton d'authentification généré par Spanner Omni CLI. Pour les connexions qui ne nécessitent pas d'identifiants, laissez cette variable non définie.
Les jetons d'authentification ne sont pas recommandés pour l'utilisation par les clients, car les jetons générés par Spanner Omni expirent et doivent être renouvelés manuellement avec la CLI Spanner Omni.
Connexion TLS
Pour établir une connexion TLS, ajoutez le certificat de l'autorité de certification au truststore Java ou transmettez-le directement lorsque vous exécutez l'application, comme indiqué dans les instructions TLS du SDK Java. L'URL JDBC ne nécessite aucun paramètre supplémentaire lors de l'établissement d'une connexion TLS :
String url = "jdbc:spanner://HOST_ADDRESS:PORT/databases/DATABASE_ID?isExperimentalHost=true";
Connexion mTLS
Pour établir une connexion mTLS, l'URL JDBC nécessite deux paramètres supplémentaires : clientCertificate et clientKey. Ces paramètres doivent spécifier les chemins d'accès au certificat client et à la clé privée du client, respectivement. La clé privée du client doit être dans un format compatible avec Java, comme indiqué dans les instructions mTLS du SDK Java :
String url = "jdbc:spanner://HOST_ADDRESS:PORT/databases/DATABASE_ID;clientCertificate=PATH_TO_CLIENT_CERT;clientKey=PATH_TO_CLIENT_KEY;isExperimentalHost=true";