Spring Data JDBC, parte do A família de dados facilita a implementação de repositórios baseados em JDBC nos seus para o aplicativo. O Spring Data JDBC oferece suporte a PostgreSQL e outros sistemas de banco de dados. Ele adiciona uma camada de abstração entre o aplicativo e o banco de dados, facilitando a transferência do aplicativo de um sistema de banco de dados para outro.
Configurar o Spring Data JDBC para os bancos de dados de dialeto PostgreSQL do Spanner
É possível integrar bancos de dados de dialeto PostgreSQL do Spanner com o Spring Data JDBC usando o dialeto PostgreSQL padrão incluído Spring Data JDBC e o driver JDBC do Spanner.
Não é necessário usar PGAdapter para essa integração.
Configuração de dialeto
O Spring Data JDBC seleciona o dialeto do banco de dados usado com base no o driver JDBC configurado como uma fonte de dados no Spring Data. Você precisa adicionar outra classe de configuração do Spring ao seu aplicativo para instruir o Spring Data JDBC a usar o dialeto PostgreSQL quando o driver JDBC do Spanner é usado:
@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())));
}
}
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
conectar a um banco de dados de dialeto PostgreSQL do 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}
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 PostgreSQL (em inglês).
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.