Sie können sowohl den PostgreSQL-JDBC-Treiber als auch den Spanner-JDBC-Treiber mit einer Spanner-Datenbank im PostgreSQL-Dialekt verwenden. Auf dieser Seite wird beschrieben, wie Sie mit einem dieser Treiber eine Verbindung zu Ihrer Datenbank herstellen.
PostgreSQL-JDBC-Treiber
In diesem Abschnitt wird beschrieben, wie Sie den PostgreSQL JDBC-Treiber mit einer Datenbank in Spanner verbinden, die den PostgreSQL-Dialekt verwendet. JDBC ist der Standard-Java-Treiber für PostgreSQL.
Wenn Sie den PostgreSQL JDBC-Treiber verwenden, müssen Sie PGAdapter verwenden, um zwischen dem PostgreSQL-Netzwerkprotokoll und dem Spanner-Netzwerkprotokoll zu übersetzen. Sie können PGAdapter als Abhängigkeit hinzufügen und es als Verarbeitungsprozess mit Ihrer Anwendung ausführen.
- Fügen Sie Ihrer Anwendung PGAdapter und den PostgreSQL-JDBC-Treiber als Abhängigkeiten hinzu.
- Starten Sie den PGAdapter als Verarbeitungsprozess mit Ihrer Anwendung.
OptionsMetadata.Builder builder = OptionsMetadata.newBuilder() .setProject("my-project") .setInstance("my-instance") .setPort(5432); ProxyServer server = new ProxyServer(builder.build()); server.startServer(); server.awaitRunning();
Ersetzen Sie Folgendes:
- my-project: Die Projekt-ID des Google Cloud-Projekts, in dem sich Ihre Datenbank im PostgreSQL-Dialekt befindet.
- my-instance: Die ID der Spanner-Instanz, in der sich Ihre Datenbank im PostgreSQL-Dialekt befindet.
- 5432: Die Portnummer, unter der PGAdapter ausgeführt wird. Legen Sie den Port auf „0“ fest, um einen dynamisch zugewiesenen Port zu verwenden.
- Prüfen Sie, ob der PostgreSQL-JDBC-Treiber geladen ist.
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)); } } }
Ersetzen Sie Folgendes:
- localhost: Der Host, auf dem PGAdapter ausgeführt wird.
- 5432: Die Portnummer, unter der PGAdapter ausgeführt wird.
- my-database: Der Name der Datenbank mit PostgreSQL-Dialekt.
Das GitHub-Repository für PGAdapter enthält eine funktionsfähige Beispielanwendung.
Spanner-JDBC-Treiber
In diesem Abschnitt wird beschrieben, wie Sie mit dem Spanner JDBC-Treiber eine Verbindung zu einer Datenbank mit PostgreSQL-Dialekt herstellen.
- Fügen Sie den Spanner-JDBC-Treiber als Abhängigkeit zu Ihrer Anwendung hinzu.
- Verwenden Sie eine Spanner-JDBC-Verbindungs-URL, um eine Verbindung zur Datenbank mit PostgreSQL-Dialekt herzustellen.
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)); } } }
Ersetzen Sie Folgendes:
- my-project: Die Projekt-ID des Google Cloud-Projekts, in dem sich die Datenbank im PostgreSQL-Dialekt befindet.
- my-instance: Die ID der Spanner-Instanz, in der sich die Datenbank mit dem PostgreSQL-Dialekt befindet.
- my-database: Der Name der Datenbank mit PostgreSQL-Dialekt.
Der Treiber erkennt automatisch den SQL-Dialekt der angegebenen Datenbank. Ein Dialektparameter in der Verbindungs-URL ist nicht erforderlich.
Nächste Schritte
- Weitere Informationen zu PGAdapter.
- Weitere Informationen zu den Verbindungsoptionen des PostgreSQL JDBC-Treibers finden Sie im GitHub-Repository von PGAdapter unter PGAdapter – JDBC-Verbindungsoptionen.