대규모 Spring Data 계열의 일부인 Spring Data JDBC를 사용하면 애플리케이션에서 JDBC 기반 저장소를 더욱 쉽게 구현할 수 있습니다. 애플리케이션이 한 데이터베이스 시스템에서 다른 데이터베이스 시스템으로 쉽게 포팅할 수 있게 하는 데이터베이스와 애플리케이션 사이에 추상화 레이어를 추가합니다.
Spanner GoogleSQL 언어 데이터베이스용 Spring Data JDBC 설정
애플리케이션에 Spanner GoogleSQL 언어를 추가하여 Spanner GoogleSQL 언어 데이터베이스와 Spring Data JDBC를 통합할 수 있습니다.
언어 구성
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."]]