Anda dapat menggunakan driver JDBC PostgreSQL atau driver JDBC Spanner dengan database dialek PostgreSQL Spanner. Halaman ini menjelaskan cara terhubung ke database Anda dengan 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.
Jika menggunakan driver JDBC PostgreSQL, Anda harus menggunakan PGAdapter untuk menerjemahkan antara protokol jaringan PostgreSQL dan protokol jaringan Spanner. Anda dapat menambahkan PGAdapter sebagai dependensi dan menjalankannya dalam proses dengan aplikasi Anda.
- Tambahkan PGAdapter dan driver JDBC PostgreSQL sebagai dependensi
ke aplikasi Anda.
- Mulai PGAdapter dalam proses dengan aplikasi Anda.
OptionsMetadata.Builder builder = OptionsMetadata.newBuilder() .setProject("PROJECT_NAME") .setInstance("INSTANCE_NAME") .setPort(PORT); ProxyServer server = new ProxyServer(builder.build()); server.startServer(); server.awaitRunning();
Ganti kode berikut:
- PORT: nomor port tempat PGAdapter
berjalan. Tetapkan ke
5432
dalam sebagian besar kasus atau0
untuk menggunakan port yang ditetapkan secara dinamis.
- PORT: nomor port tempat PGAdapter
berjalan. Tetapkan ke
- Pastikan driver JDBC PostgreSQL dimuat.
Class.forName("org.postgresql.Driver");
try (Connection connection = DriverManager.getConnection("jdbc:postgresql://APPLICATION_HOST:PORT/DATABASE_NAME")) { 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:
- APPLICATION_HOST: nama host atau alamat IP
mesin tempat PGAdapter berjalan. Jika berjalan secara lokal,
gunakan
localhost
.
Repositori GitHub PGAdapter berisi aplikasi contoh.
- APPLICATION_HOST: nama host atau alamat IP
mesin tempat PGAdapter berjalan. Jika berjalan secara lokal,
gunakan
Soket domain Unix
Bagian ini menjelaskan cara menggunakan soket domain Unix untuk menghubungkan driver JDBC PostgreSQL ke database dialek PostgreSQL. Gunakan soket domain Unix untuk latensi serendah mungkin.
Untuk menggunakan soket domain Unix, PGAdapter harus berjalan di host yang sama dengan aplikasi klien.
// Make sure the PG JDBC driver is loaded. Class.forName("org.postgresql.Driver");
try (Connection connection = DriverManager.getConnection("jdbc:postgresql://APPLICATION_HOST/DATABASE_NAME" + "?socketFactory=org.newsclub.net.unix.AFUNIXSocketFactory$FactoryArg" + "&socketFactoryArg=DIRECTORY_NAME.s.PGSQL.PORT")) { 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)); } } }
Ganti kode berikut:
- APPLICATION_HOST: nama host atau alamat IP
mesin tempat PGAdapter berjalan. Jika berjalan secara lokal,
gunakan
localhost
.
argumen command line. Misalnya, - PORT: nomor port tempat PGAdapter
berjalan. Ubah ini di string koneksi jika PGAdapter berjalan di port kustom. Jika tidak, gunakan port default,
5432
.
/tmp
.
Driver JDBC Spanner
Bagian ini menjelaskan cara menggunakan driver JDBC Spanner untuk terhubung ke database dialek PostgreSQL.
- Tambahkan driver JDBC Spanner sebagai dependensi ke aplikasi Anda.
- Gunakan URL koneksi JDBC Spanner untuk terhubung ke
database dialek PostgreSQL.
// Make sure the PostgreSQL JDBC driver is loaded. Class.forName("org.postgresql.Driver");
try (Connection connection = DriverManager.getConnection( "jdbc:cloudspanner:/projects/PROJECT_NAME/instances/INSTANCE_NAME/databases/DATABASE_NAME")) { 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)); } } }Driver otomatis mendeteksi dialek SQL dari database yang ditentukan. Parameter dialek di URL koneksi tidak diperlukan.
Langkah berikutnya
- Pelajari PGAdapter lebih lanjut.
- Untuk mengetahui informasi selengkapnya tentang opsi koneksi driver JDBC PostgreSQL, lihat PGAdapter - JDBC Connection Options di repositori GitHub PGAdapter.