Menghubungkan JDBC ke database dialek PostgreSQL

Anda dapat menggunakan driver JDBC PostgreSQL dan driver JDBC Spanner dengan database dialek PostgreSQL Spanner. Halaman ini menjelaskan cara terhubung ke database Anda dengan salah satu driver ini.

Driver JDBC PostgreSQL

Bagian ini menjelaskan cara menghubungkan driver JDBC PostgreSQL ke database dialek PostgreSQL di Spanner. JDBC adalah driver Java standar untuk PostgreSQL.

Penggunaan driver JDBC PostgreSQL memerlukan penggunaan PGAdapter untuk menerjemahkan antara protokol jaringan PostgreSQL dan protokol jaringan Spanner. Anda dapat menambahkan PGAdapter sebagai dependensi dan menjalankannya dalam proses dengan aplikasi Anda.

  1. Tambahkan PGAdapter dan driver JDBC PostgreSQL sebagai dependensi ke aplikasi Anda.

    <dependency>
      <groupId>org.postgresql</groupId>
      <artifactId>postgresql</artifactId>
      <version>0.42.3</version>
    </dependency>
    <dependency>
      <groupId>com.google.cloud</groupId>
      <artifactId>google-cloud-spanner-pgadapter</artifactId>
      <version>0.42.3</version>
    </dependency>
  2. Mulai PGAdapter dalam proses dengan aplikasi Anda.

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

    Ganti kode berikut:

    • my-project: Project ID project Google Cloud tempat database dialek PostgreSQL Anda berada.
    • my-instance: ID instance Spanner tempat database dialek PostgreSQL Anda berada.
    • 5432: Nomor port tempat PGAdapter berjalan. Tetapkan port ke `0` untuk menggunakan port yang ditetapkan secara dinamis.
  3. Pastikan driver driver JDBC PostgreSQL dimuat.

            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));
                }
              }
            }
           

    Ganti kode berikut:

    • localhost: Host tempat PGAdapter berjalan.
    • 5432: Nomor port tempat PGAdapter berjalan.
    • my-database: Nama database dialek PostgreSQL.

    Repositori GitHub PGAdapter berisi aplikasi contoh yang berfungsi.

Driver JDBC Spanner

Bagian ini menjelaskan cara menggunakan driver JDBC Spanner untuk terhubung ke database database dialek PostgreSQL.

  1. Tambahkan driver JDBC Spanner sebagai dependensi ke aplikasi Anda.

    <dependencyManagement>
      <dependencies>
        <dependency>
          <groupId>com.google.cloud</groupId>
          <artifactId>libraries-bom</artifactId>
          <version>26.53.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. Gunakan URL koneksi JDBC Spanner untuk terhubung ke database dialek 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));
              }
            }
          }
          

    Ganti kode berikut:

    • my-project: Project ID project Google Cloud tempat database dialek PostgreSQL Anda berada.
    • my-instance: ID instance Spanner tempat database dialek PostgreSQL Anda berada.
    • my-database: Nama database dialek PostgreSQL.

    Driver secara otomatis mendeteksi dialek SQL dari database yang ditentukan. Parameter dialek di URL koneksi tidak diperlukan.

Langkah selanjutnya