Spring Data JDBC, bagian dari keluarga Spring Data yang lebih besar, memudahkan penerapan repositori berbasis JDBC di aplikasi Anda. Library ini menambahkan lapisan abstraksi antara aplikasi dan database Anda yang memudahkan aplikasi Anda untuk di-port dari satu sistem database ke sistem database lainnya.
Menyiapkan Spring Data JDBC untuk database dialek GoogleSQL Spanner
Anda dapat mengintegrasikan database dialek GoogleSQL Spanner dengan Spring Data JDBC dengan menambahkan dialek untuk Spanner GoogleSQL ke aplikasi Anda.
Konfigurasi dialek
Spring Data JDBC memilih dialek database yang digunakannya berdasarkan driver JDBC yang telah dikonfigurasi sebagai sumber data di Spring Data. Anda harus menambahkan penyedia dialek tambahan ke aplikasi untuk menginstruksikan Spring Data JDBC agar menggunakan dialek GoogleSQL saat driver JDBC Spanner digunakan:
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;
}
}
Penyedia dialek ini harus ditambahkan ke file spring.factories
di
aplikasi Anda:
org.springframework.data.jdbc.repository.config.DialectResolver$JdbcDialectProvider=org.springframework.data.jdbc.repository.config.DialectResolver.DefaultDialectProvider,com.google.cloud.spanner.sample.SpannerDialectProvider
Untuk melihat contoh, lihat aplikasi contoh yang berfungsi lengkap di GitHub.
Dependensi
Dalam project Anda, tambahkan dependensi Apache Maven untuk Spring Data JDBC dan 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>
Konfigurasi sumber data
Konfigurasikan application.properties
untuk menggunakan driver JDBC Spanner dan
hubungkan ke database dialek GoogleSQL 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}
Aplikasi Contoh Lengkap
Untuk mencoba integrasi ini dengan aplikasi contoh, lihat Aplikasi Contoh JDBC Spring Data dengan Spanner GoogleSQL.
Langkah berikutnya
- Pelajari Spring Data JDBC lebih lanjut.
- Buatlah laporan masalah GitHub untuk melaporkan bug atau mengajukan pertanyaan tentang driver JDBC Spanner.