Spring Data JDBC, qui fait partie de la grande famille Spring Data, facilite l'implémentation de dépôts basés sur JDBC dans votre application. Il ajoute une couche d'abstraction entre votre application et votre base de données, ce qui facilite le transfert de votre application d'un système de base de données à un autre.
Configurer Spring Data JDBC pour les bases de données Spanner au format GoogleSQL
Vous pouvez intégrer des bases de données de dialecte GoogleSQL Spanner à Spring Data JDBC en ajoutant un dialecte pour Spanner GoogleSQL à votre application.
Configuration des dialectes
Spring Data JDBC sélectionne le dialecte de base de données qu'il utilise en fonction du pilote JDBC configuré en tant que source de données dans Spring Data. Vous devez ajouter un fournisseur de dialecte supplémentaire à votre application pour demander à Spring Data JDBC d'utiliser le dialecte GoogleSQL lorsque le pilote JDBC Spanner est utilisé:
public class SpannerDialectProvider implements DialectResolver.JdbcDialectProvider {
@Override
public Optional<Dialect> getDialect(JdbcOperations operations) {
return Optional.ofNullable(
operations.execute((ConnectionCallback<Dialect>) SpannerDialectProvider::getDialect));
}
@Nullable
private static Dialect getDialect(Connection connection) throws SQLException {
DatabaseMetaData metaData = connection.getMetaData();
String name = metaData.getDatabaseProductName().toLowerCase(Locale.ENGLISH);
if (name.contains("spanner")) {
return SpannerDialect.INSTANCE;
}
return null;
}
}
Ce fournisseur de dialecte doit être ajouté au fichier spring.factories
de votre application:
org.springframework.data.jdbc.repository.config.DialectResolver$JdbcDialectProvider=org.springframework.data.jdbc.repository.config.DialectResolver.DefaultDialectProvider,com.google.cloud.spanner.sample.SpannerDialectProvider
Pour voir un exemple, consultez l'application exemple fonctionnelle complète sur GitHub.
Dépendances
Dans votre projet, ajoutez les dépendances Apache Maven pour Spring Data JDBC et le pilote JDBC Spanner.
<dependencies>
<!-- Spring Data JDBC -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jdbc</artifactId>
</dependency>
<!-- Spanner JDBC driver -->
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>google-cloud-spanner-jdbc</artifactId>
</dependency>
<dependencies>
Configuration de la source de données
Configurez application.properties
pour utiliser le pilote JDBC Spanner et vous connecter à une base de données Spanner en dialecte GoogleSQL.
spanner.project=my-project
spanner.instance=my-instance
spanner.database=spring-data-jdbc
spring.datasource.driver-class-name=com.google.cloud.spanner.jdbc.JdbcDriver
spring.datasource.url=jdbc:cloudspanner:/projects/${spanner.project}/instances/${spanner.instance}/databases/${spanner.database}
Exemple d'application complète
Pour essayer cette intégration avec un exemple d'application, consultez Exemple d'application JDBC Spring Data avec Spanner Google SQL.
Étape suivante
- En savoir plus sur Spring Data JDBC
- Ouvrez une demande sur GitHub pour signaler un bug ou poser une question sur le pilote JDBC Spanner.