JDBC Spring Data, qui fait partie de l'environnement Spring de données, 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 les bases de données de dialecte PostgreSQL de Spanner à Spring Data JDBC. en utilisant le dialecte PostgreSQL standard inclus dans JDBC Spring Data et le pilote JDBC Spanner.
Vous n'avez pas besoin d'utiliser PGAdapter pour cette intégration.
Configuration du dialecte
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
Configurer application.properties
pour utiliser le pilote JDBC Spanner et
se connecter à une base de données
de dialecte PostgreSQL Spanner.
# 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
- Signalez un problème sur GitHub pour signaler un bug ou poser une question sur le Pilote JDBC Spanner.