PostgreSQL 언어 데이터베이스에 JDBC 연결

Spanner PostgreSQL 언어 데이터베이스에서 PostgreSQL JDBC 드라이버와 Spanner JDBC 드라이버 모두 사용할 수 있습니다. 이 페이지에서는 이러한 드라이버 중 하나를 사용하여 데이터베이스에 연결하는 방법을 설명합니다.

PostgreSQL JDBC 드라이버

이 섹션에서는 PostgreSQL JDBC 드라이버를 Spanner의 PostgreSQL 언어 데이터베이스에 연결하는 방법을 설명합니다. JDBC는 PostgreSQL용 표준 Java 드라이버입니다.

PostgreSQL JDBC 드라이버를 사용하려면 PGAdapter를 사용하여 PostgreSQL 네트워크 프로토콜과 Spanner 네트워크 프로토콜 간에 변환해야 합니다. PGAdapter를 종속 항목으로 추가하고 애플리케이션에서 진행 중으로 실행할 수 있습니다.

  1. PGAdapter 및 PostgreSQL JDBC 드라이버를 종속 항목으로 애플리케이션에 추가합니다.

    <dependency>
      <groupId>org.postgresql</groupId>
      <artifactId>postgresql</artifactId>
      <version>0.42.2</version>
    </dependency>
    <dependency>
      <groupId>com.google.cloud</groupId>
      <artifactId>google-cloud-spanner-pgadapter</artifactId>
      <version>0.42.2</version>
    </dependency>
  2. 애플리케이션에서 진행 중인 PGAdapter를 시작합니다.

              OptionsMetadata.Builder builder =
                OptionsMetadata.newBuilder()
                  .setProject("my-project")
                  .setInstance("my-instance")
                  .setPort(5432);
              ProxyServer server = new ProxyServer(builder.build());
              server.startServer();
              server.awaitRunning();
              

    다음을 바꿉니다.

    • my-project: PostgreSQL 변형 데이터베이스가 있는 Google Cloud프로젝트의 프로젝트 ID입니다.
    • my-instance: PostgreSQL 언어 데이터베이스가 있는 Spanner 인스턴스의 ID입니다.
    • 5432: PGAdapter가 실행 중인 포트 번호입니다. 동적으로 할당된 포트를 사용하려면 포트를 `0` 으로 설정합니다.
  3. PostgreSQL JDBC 드라이버가 로드되었는지 확인합니다.

            Class.forName("org.postgresql.Driver");
    
            try (Connection connection =
                DriverManager.getConnection("jdbc:postgresql://localhost:5432/my-database")) {
              try (ResultSet resultSet =
                  connection.createStatement().executeQuery("select 'Hello world!' as hello")) {
                while (resultSet.next()) {
                  System.out.printf(
                    "Greetings from Cloud Spanner PostgreSQL: %s\n", resultSet.getString(1));
                }
              }
            }
           

    다음을 바꿉니다.

    • localhost: PGAdapter가 실행 중인 호스트입니다.
    • 5432: PGAdapter가 실행 중인 포트 번호입니다.
    • my-database: PostgreSQL 언어 데이터베이스의 이름입니다.

    PGAdapter GitHub 저장소에 작동 중인 샘플 애플리케이션이 포함됩니다.

Spanner JDBC 드라이버

이 섹션에서는 Spanner JDBC 드라이버를 사용하여 PostgreSQL 언어 데이터베이스에 연결하는 방법을 설명합니다.

  1. Spanner JDBC 드라이버를 종속 항목으로 애플리케이션에 추가합니다.

    <dependencyManagement>
      <dependencies>
        <dependency>
          <groupId>com.google.cloud</groupId>
          <artifactId>libraries-bom</artifactId>
          <version>26.52.0</version>
          <type>pom</type>
          <scope>import</scope>
        </dependency>
      </dependencies>
    </dependencyManagement>
    
    <dependencies>
      <dependency>
        <groupId>com.google.cloud</groupId>
        <artifactId>google-cloud-spanner-jdbc</artifactId>
        <exclusions>
          <exclusion>
            <groupId>com.google.api.grpc</groupId>
            <artifactId>proto-google-cloud-spanner-executor-v1</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
  2. Spanner JDBC 연결 URL을 사용하여 PostgreSQL 언어 데이터베이스에 연결합니다.

          try (Connection connection = DriverManager.getConnection(
              "jdbc:cloudspanner:/projects/my-project/instances/my-instance/databases/my-database")) {
            try (ResultSet resultSet =
                connection.createStatement().executeQuery("select 'Hello world!' as hello")) {
              while (resultSet.next()) {
                System.out.printf(
                  "Greetings from Cloud Spanner PostgreSQL: %s\n", resultSet.getString(1));
              }
            }
          }
          

    다음을 바꿉니다.

    • my-project: PostgreSQL 변형 데이터베이스가 있는 Google Cloud프로젝트의 프로젝트 ID입니다.
    • my-instance: PostgreSQL 언어 데이터베이스가 있는 Spanner 인스턴스의 ID입니다.
    • my-database: PostgreSQL 언어 데이터베이스의 이름입니다.

    드라이버는 지정된 데이터베이스의 SQL 언어를 자동으로 감지합니다. 연결 URL의 언어 매개변수는 필요하지 않습니다.

다음 단계

  • PGAdapter에 대해 자세히 알아보세요.
  • PostgreSQL JDBC 드라이버 연결 옵션에 대한 자세한 내용은 PGAdapter GitHub 저장소의 PGAdapter - JDBC 연결 옵션을 참조하세요.