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. Spring Data JDBC est compatible avec PostgreSQL et d'autres systèmes de base de données. 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 en dialecte PostgreSQL
Vous pouvez intégrer des bases de données Spanner en dialecte PostgreSQL à Spring Data JDBC à l'aide du dialecte PostgreSQL standard inclus avec Spring Data JDBC et le pilote JDBC Spanner.
Vous n'avez pas besoin d'utiliser PGAdapter pour cette intégration.
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 une classe de configuration Spring supplémentaire à votre application pour demander à Spring Data JDBC d'utiliser le dialecte PostgreSQL lorsque le pilote JDBC Spanner est utilisé:
@Configuration
public class JdbcConfiguration extends AbstractJdbcConfiguration {
/** Override the dialect auto-detection, so it also returns PostgreSQL for Spanner. */
@Override
public Dialect jdbcDialect(@Nonnull NamedParameterJdbcOperations operations) {
if (isCloudSpannerPG(operations.getJdbcOperations())) {
return PostgresDialect.INSTANCE;
}
return super.jdbcDialect(operations);
}
/** Returns true if the current database is a Spanner PostgreSQL-dialect database. */
public static boolean isCloudSpannerPG(JdbcOperations operations) {
return Boolean.TRUE.equals(
operations.execute(
(ConnectionCallback<Boolean>)
connection ->
connection.isWrapperFor(CloudSpannerJdbcConnection.class)
&& com.google.cloud.spanner.Dialect.POSTGRESQL.equals(
connection.unwrap(CloudSpannerJdbcConnection.class).getDialect())));
}
}
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 PostgreSQL.
# This profile uses a Spanner PostgreSQL database.
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 PostgreSQL.
É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.