Connettere JDBC a un database dialetto PostgreSQL

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

Driver JDBC PostgreSQL

Questa sezione spiega come collegare il driver JDBC PostgreSQL a un database dialetto PostgreSQL in Spanner. JDBC è il driver Java standard per PostgreSQL.

L'utilizzo del driver JDBC PostgreSQL richiede l'utilizzo di PGAdapter per la conversione tra il protocollo di rete PostgreSQL e il protocollo di rete Spanner. Puoi aggiungere PGAdapter come dipendenza ed eseguirlo in-process con la tua applicazione.

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

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

2. Avvia PGAdapter in-process 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 del server di database e porta nella 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 un' applicazione di esempio funzionante.

Driver JDBC Spanner

Questa sezione spiega come utilizzare il driver JDBC di Spanner per connetterti a un database di database dialetto PostgreSQL.

1. Aggiungi il driver JDBC di Spanner come dipendenza alla tua applicazione.

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>com.google.cloud</groupId>
      <artifactId>libraries-bom</artifactId>
      <version>26.37.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 dialetto 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 è obbligatorio un parametro dialetto nell'URL di connessione.

Passaggi successivi