Spring Data JDBC, Teil der größeren Spring Data-Familie, erleichtert die Implementierung JDBC-basierter Repositories in Ihrer Anwendung. Es fügt eine Abstraktionsschicht zwischen Ihrer Anwendung und Ihrer Datenbank hinzu, die das Portieren Ihrer Anwendung von einem Datenbanksystem in ein anderes erleichtert.
Spring Data JDBC für Spanner-Datenbanken mit GoogleSQL-Dialekt einrichten
Sie können Spanner-Datenbanken mit GoogleSQL-Dialekt in Spring Data JDBC einbinden, indem Sie Ihrer Anwendung einen Dialekt für Spanner GoogleSQL hinzufügen.
Dialektkonfiguration
Spring Data JDBC wählt den verwendeten Datenbankdialekt basierend auf dem JDBC-Treiber aus, der in Spring Data als Datenquelle konfiguriert wurde. Sie müssen Ihrer Anwendung einen zusätzlichen Dialektanbieter hinzufügen, um Spring Data JDBC anzuweisen, den GoogleSQL-Dialekt zu verwenden, wenn der Spanner-JDBC-Treiber verwendet wird:
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;
}
}
Dieser Dialektanbieter muss der Datei spring.factories
in Ihrer Anwendung hinzugefügt werden:
org.springframework.data.jdbc.repository.config.DialectResolver$JdbcDialectProvider=org.springframework.data.jdbc.repository.config.DialectResolver.DefaultDialectProvider,com.google.cloud.spanner.sample.SpannerDialectProvider
Ein Beispiel finden Sie in der vollständigen funktionsfähigen Beispielanwendung auf GitHub.
Abhängigkeiten
Fügen Sie Ihrem Projekt Apache Maven-Abhängigkeiten für Spring Data JDBC und den Spanner JDBC-Treiber hinzu.
<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>
Konfiguration der Datenquelle
Konfigurieren Sie application.properties
für die Verwendung des Spanner-JDBC-Treibers und stellen Sie eine Verbindung zu einer Spanner-Datenbank mit GoogleSQL-Dialekt her.
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}
Vollständige Beispielanwendung
Eine Beispielanwendung für diese Integration finden Sie unter Spring Data JDBC-Beispielanwendung mit Spanner GoogleSQL.
Nächste Schritte
- Weitere Informationen zu Spring Data JDBC
- Senden Sie ein GitHub-Problem, um einen Fehler zu melden oder eine Frage zum Spanner JDBC-Treiber zu stellen.