Connetti JDBC a un database di dialetti PostgreSQL

Puoi utilizzare sia il driver JDBC PostgreSQL sia il driver JDBC di Spanner con un database Spanner con dialetti PostgreSQL. In questa pagina viene spiegato come connettersi al tuo database con uno di questi driver.

Driver JDBC PostgreSQL

Questa sezione spiega come connettere il driver JDBC PostgreSQL a un database di dialetti PostgreSQL in Spanner. JDBC è il driver Java standard per PostgreSQL.

L'uso del driver JDBC PostgreSQL richiede l'uso di PGAdapter per traduci tra il protocollo di rete PostgreSQL Protocollo di rete Spanner. Puoi aggiungere PGAdapter come della dipendenza ed eseguirla in-process con la tua applicazione.

1. Aggiungi PGAdapter e il driver JDBC PostgreSQL come dipendenze la tua applicazione.

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

2. Avvia PGAdapter in fase di elaborazione con la tua applicazione.

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. Specifica localhost e 5432 come host e porta del server di database nel Stringa di connessione JDBC.

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

Il repository GitHub di PGAdapter contiene dell'applicazione di esempio funzionante.

Driver JDBC Spanner

Questa sezione spiega come utilizzare il driver JDBC di Spanner per connettere in un database di dialetti PostgreSQL.

1. Aggiungi il driver JDBC di Spanner come dipendenza all'applicazione.

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>com.google.cloud</groupId>
      <artifactId>libraries-bom</artifactId>
      <version>26.43.0</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>

<dependencies>
  <dependency>
    <groupId>com.google.cloud</groupId>
    <artifactId>google-cloud-spanner-jdbc</artifactId>
  </dependency>

2. Utilizza un URL di connessione JDBC di Spanner per collegarti al database di dialetti 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));
    }
  }
}
        

Il driver rileva automaticamente il dialetto SQL del database specificato. Non è richiesto un parametro dialetto nell'URL di connessione.

Passaggi successivi