Spring Data JDBC はより大きな Spring Data ファミリーの一部であり、これを利用することで、アプリケーションで JDBC ベースのリポジトリを実装しやすくなります。アプリケーションとデータベースの間に抽象化レイヤが追加され、アプリケーションがデータベース間で簡単に移行できるようになります。
Spanner の GoogleSQL 言語データベースに Spring Data JDBC を設定する
Spanner GoogleSQL 言語のデータベースを Spring Data JDBC と統合するには、アプリケーションに Spanner GoogleSQL 用の言語を追加します。
言語の構成
Spring Data JDBC は使用するデータベースの言語を、Spring Data に構成されたデータソースの JDBC ドライバに基づいて選択します。Spanner JDBC ドライバを使う場合、Spring Data JDBC に GoogleSQL の言語を使わせるためには、アプリケーションに追加の言語プロバイダを組み込む必要があります。
[[["わかりやすい","easyToUnderstand","thumb-up"],["問題の解決に役立った","solvedMyProblem","thumb-up"],["その他","otherUp","thumb-up"]],[["わかりにくい","hardToUnderstand","thumb-down"],["情報またはサンプルコードが不正確","incorrectInformationOrSampleCode","thumb-down"],["必要な情報 / サンプルがない","missingTheInformationSamplesINeed","thumb-down"],["翻訳に関する問題","translationIssue","thumb-down"],["その他","otherDown","thumb-down"]],["最終更新日 2025-09-03 UTC。"],[],[],null,["# Integrate Spanner with Spring Data JDBC (GoogleSQL)\n\n[Spring Data JDBC](https://spring.io/projects/spring-data-jdbc), part of the larger Spring\nData family, makes it easier to implement JDBC based repositories in your\napplication. It adds an abstraction layer between your application and your\ndatabase that makes your application easier to port from one database system to\nanother.\n\nSet up Spring Data JDBC for Spanner GoogleSQL-dialect databases\n---------------------------------------------------------------\n\nYou can integrate Spanner GoogleSQL-dialect databases with Spring Data JDBC\nby adding a dialect for Spanner GoogleSQL to your\napplication.\n\n### Dialect configuration\n\nSpring Data JDBC selects the database dialect it uses based on\nthe JDBC driver that has been configured as a data source in Spring Data.\nYou must add an additional dialect provider to your application to instruct\nSpring Data JDBC to use the GoogleSQL dialect when the\nSpanner JDBC driver is used: \n\n public class SpannerDialectProvider implements DialectResolver.JdbcDialectProvider {\n @Override\n public Optional\u003cDialect\u003e getDialect(JdbcOperations operations) {\n return Optional.ofNullable(\n operations.execute((ConnectionCallback\u003cDialect\u003e) SpannerDialectProvider::getDialect));\n }\n\n @Nullable\n private static Dialect getDialect(Connection connection) throws SQLException {\n DatabaseMetaData metaData = connection.getMetaData();\n String name = metaData.getDatabaseProductName().toLowerCase(Locale.ENGLISH);\n if (name.contains(\"spanner\")) {\n return SpannerDialect.INSTANCE;\n }\n return null;\n }\n }\n\nThis dialect provider must be added to the `spring.factories` file in your\napplication: \n\n org.springframework.data.jdbc.repository.config.DialectResolver$JdbcDialectProvider=org.springframework.data.jdbc.repository.config.DialectResolver.DefaultDialectProvider,com.google.cloud.spanner.sample.SpannerDialectProvider\n\nTo see an example, refer to the full\n[working sample application](https://github.com/googleapis/java-spanner-jdbc/tree/main/samples/spring-data-jdbc/googlesql) on GitHub.\n\n### Dependencies\n\nIn your project, add Apache Maven dependencies for\n[Spring Data JDBC](https://spring.io/projects/spring-data-jdbc) and the\n[Spanner JDBC driver](https://github.com/googleapis/java-spanner-jdbc). \n\n \u003cdependencies\u003e\n \u003c!-- Spring Data JDBC --\u003e\n \u003cdependency\u003e\n \u003cgroupId\u003eorg.springframework.boot\u003c/groupId\u003e\n \u003cartifactId\u003espring-boot-starter-data-jdbc\u003c/artifactId\u003e\n \u003c/dependency\u003e\n\n \u003c!-- Spanner JDBC driver --\u003e\n \u003cdependency\u003e\n \u003cgroupId\u003ecom.google.cloud\u003c/groupId\u003e\n \u003cartifactId\u003egoogle-cloud-spanner-jdbc\u003c/artifactId\u003e\n \u003c/dependency\u003e\n \u003cdependencies\u003e\n\n### Data source configuration\n\nConfigure `application.properties` to use the Spanner JDBC driver and\nconnect to a Spanner GoogleSQL-dialect database. \n\n spanner.project=my-project\n spanner.instance=my-instance\n spanner.database=spring-data-jdbc\n\n spring.datasource.driver-class-name=com.google.cloud.spanner.jdbc.JdbcDriver\n spring.datasource.url=jdbc:cloudspanner:/projects/${spanner.project}/instances/${spanner.instance}/databases/${spanner.database}\n\nFull Sample Application\n-----------------------\n\nTo try this integration with a sample application, see\n[Spring Data JDBC Sample Application with Spanner\nGoogleSQL](https://github.com/googleapis/java-spanner-jdbc/tree/main/samples/spring-data-jdbc/googlesql).\n\nWhat's next\n-----------\n\n- Learn more about [Spring Data JDBC](https://spring.io/projects/spring-data-jdbc).\n- [File a GitHub issue](https://github.com/googleapis/java-spanner-jdbc/issues) to report a bug or ask a question about the Spanner JDBC driver."]]