Connetti JDBC a un database di dialetti PostgreSQL

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

Driver JDBC PostgreSQL

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

L'utilizzo del driver JDBC PostgreSQL richiede l'uso di PGAdapter per la traduzione 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 dalla tua applicazione.

<dependency>
  <groupId>org.postgresql</groupId>
  <artifactId>postgresql</artifactId>
  <version>0.35.0</version>
</dependency>
<dependency>
  <groupId>com.google.cloud</groupId>
  <artifactId>google-cloud-spanner-pgadapter</artifactId>
  <version>0.35.0</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 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 connettersi a un database di database con 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.42.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