Spring Data JDBC, che fa parte della più grande famiglia Spring Data, semplifica l'implementazione di repository basati su JDBC nella tua applicazione. Aggiunge un livello di astrazione tra l'applicazione e il database che semplifica il porting dell'applicazione da un sistema di database all'altro.
Configurare Spring Data JDBC per i database con dialetto Google SQL di Spanner
Puoi integrare i database con dialetto Google SQL di Spanner con Spring Data JDBC aggiungendo un dialetto per Google SQL di Spanner alla tua applicazione.
Configurazione del dialetto
Spring Data JDBC seleziona il dialetto del database utilizzato in base al driver JDBC configurato come origine dati in Spring Data. Devi aggiungere un provider di dialetti aggiuntivo all'applicazione per indicare a Spring Data JDBC di utilizzare il dialetto GoogleSQL quando viene utilizzato il driver JDBC Spanner:
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;
}
}
Questo provider di dialetti deve essere aggiunto al file spring.factories
nella tua applicazione:
org.springframework.data.jdbc.repository.config.DialectResolver$JdbcDialectProvider=org.springframework.data.jdbc.repository.config.DialectResolver.DefaultDialectProvider,com.google.cloud.spanner.sample.SpannerDialectProvider
Per vedere un esempio, consulta la completa applicazione di esempio funzionante 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
per utilizzare il driver JDBC di Spanner e collegarti a un database Spanner con dialetto 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}
Applicazione di esempio completa
Per provare questa integrazione con un'applicazione di esempio, consulta Spring Data JDBC Sample Application with Spanner GoogleSQL.
Passaggi successivi
- Scopri di più su Spring Data JDBC.
- Invia una segnalazione su GitHub per segnalare un bug o porre una domanda sul driver JDBC Spanner.