O Spring Data JDBC, parte da família mais ampla do Spring Data, facilita a implementação de repositórios baseados em JDBC no seu aplicativo. Ele adiciona uma camada de abstração entre o aplicativo e o banco de dados, facilitando a portabilidade de um sistema de banco de dados para outro.
Configurar o Spring Data JDBC para bancos de dados com dialeto GoogleSQL do Spanner
É possível integrar bancos de dados com o dialeto GoogleSQL do Spanner ao Spring Data JDBC adicionando um dialeto do Spanner GoogleSQL ao seu aplicativo.
Configuração de dialeto
O Spring Data JDBC seleciona o dialeto do banco de dados usado com base no driver JDBC configurado como uma fonte de dados no Spring Data. É necessário adicionar um provedor de dialeto ao seu aplicativo para instruir o Spring Data JDBC a usar o dialeto GoogleSQL quando o driver JDBC do Spanner é usado:
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;
}
}
Esse provedor de dialeto precisa ser adicionado ao arquivo spring.factories
no
aplicativo:
org.springframework.data.jdbc.repository.config.DialectResolver$JdbcDialectProvider=org.springframework.data.jdbc.repository.config.DialectResolver.DefaultDialectProvider,com.google.cloud.spanner.sample.SpannerDialectProvider
Para conferir um exemplo, consulte o aplicativo de exemplo completo no GitHub.
Dependências
No projeto, adicione as dependências do Apache Maven para o Spring Data JDBC e o driver JDBC do 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>
Configuração da fonte de dados
Configure application.properties
para usar o driver JDBC do Spanner e
se conectar a um banco de dados do dialeto GoogleSQL do Spanner.
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}
Exemplo de aplicativo completo
Para testar essa integração com um aplicativo de exemplo, consulte Aplicativo de exemplo do Spring Data JDBC com o Spanner GoogleSQL.
A seguir
- Saiba mais sobre o Spring Data JDBC.
- Registre um problema no GitHub para relatar um bug ou fazer uma pergunta sobre o driver JDBC do Spanner.