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

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

PostgreSQL JDBC 드라이버

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

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

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

<dependency>
  <groupId>org.postgresql</groupId>
  <artifactId>postgresql</artifactId>
  <version>0.42.0</version>
</dependency>
<dependency>
  <groupId>com.google.cloud</groupId>
  <artifactId>google-cloud-spanner-pgadapter</artifactId>
  <version>0.42.0</version>
</dependency>

2. 애플리케이션에서 진행 중인 PGAdapter를 시작합니다.

OptionsMetadata.Builder builder =
    OptionsMetadata.newBuilder()
        .setProject("my-project")
        .setInstance("my-instance")
        // Set the port to 0 to use a dynamically assigned port.
        .setPort(5432);
ProxyServer server = new ProxyServer(builder.build());
server.startServer();
server.awaitRunning();
      

3. JDBC 연결 문자열에서 localhost5432를 데이터베이스 서버 호스트와 포트로 지정합니다.

// Make sure the PG JDBC driver is loaded.
Class.forName("org.postgresql.Driver");

// Replace localhost and 5432 with the host and port number where PGAdapter is running.
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(
        "Greeting from Cloud Spanner PostgreSQL: %s\n", resultSet.getString(1));
    }
  }
}
      

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

Spanner JDBC 드라이버

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

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

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>com.google.cloud</groupId>
      <artifactId>libraries-bom</artifactId>
      <version>26.51.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(
        "Greeting from Cloud Spanner PostgreSQL: %s\n", resultSet.getString(1));
    }
  }
}
        

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

다음 단계

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