Spring Data JDBC, parte della più ampia Spring La famiglia di dati semplifica l'implementazione di repository basati su JDBC nel tuo un'applicazione. Spring Data JDBC supporta PostgreSQL e altri sistemi di database. Aggiunge un livello di astrazione tra l'applicazione e il database che semplifica il porting dell'applicazione da un sistema di database all'altro.
Configura JDBC di Spring Data per database con dialetti PostgreSQL di Spanner
Puoi integrare i database con dialetto PostgreSQL di Spanner con Spring Data JDBC utilizzando il dialetto PostgreSQL standard incluso con Spring Data JDBC e il driver JDBC Spanner.
Non è necessario utilizzare PGAdapter per questa integrazione.
Configurazione del dialetto
JDBC Spring Data seleziona il dialetto del database che utilizza in base il driver JDBC che è stato configurato come origine dati in Spring Data. Devi aggiungere un'altra classe di configurazione Spring all'applicazione per indicare a Spring Data JDBC di utilizzare il dialetto PostgreSQL quando viene utilizzato il driver JDBC Spanner:
@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())));
}
}
Per un esempio, consulta la sezione dell'applicazione di esempio in uso su GitHub.
Dipendenze
Nel progetto, aggiungi le dipendenze Apache Maven per Spring Data JDBC e il driver 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>
Configurazione dell'origine dati
Configura application.properties
in modo che utilizzi il driver JDBC Spanner e collegalo a un database Spanner con dialetto 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}
Esempio di applicazione completo
Per provare questa integrazione con un'applicazione di esempio, consulta Applicazione di esempio JDBC di Spring Data con Spanner PostgreSQL.
Passaggi successivi
- Scopri di più su Spring Data JDBC.
- Segnala un problema su GitHub per segnalare un bug o porre una domanda sul Driver JDBC di Spanner.