Menggunakan driver JDBC untuk terhubung ke Spanner Omni

Dokumen ini menunjukkan cara menggunakan driver JDBC Spanner untuk menghubungkan aplikasi Java Anda ke Spanner Omni dan menjalankan pernyataan SQL.

Java Database Connectivity (JDBC) adalah Java API standar yang menyediakan cara yang konsisten bagi aplikasi untuk berinteraksi dengan database relasional. Driver JDBC Spanner berfungsi dengan Spanner Omni dengan cara yang sama seperti cara kerjanya dengan Spanner.

Dengan menggunakan driver JDBC, Anda dapat memanfaatkan alat dan library standar yang kompatibel dengan JDBC dengan Spanner Omni.

Koneksi Spanner Omni JDBC mendukung tiga mode keamanan: plain-text, TLS, dan mTLS.

Untuk mengetahui informasi selengkapnya, lihat Mulai menggunakan Spanner di JDBC dalam dokumentasi Spanner.

Pertimbangan URL koneksi

Karena Spanner Omni tidak terhubung langsung ke projectGoogle Cloud , komponen projects/name tidak diperlukan di URL koneksi JDBC. Demikian pula, karena setiap deployment Spanner Omni memiliki satu instance yang sudah dibuat (instances/default), komponen instances/name bersifat opsional.

Membuat koneksi Spanner Omni

Contoh berikut menunjukkan cara membuat koneksi dengan Spanner Omni menggunakan driver JDBC Spanner untuk setiap mode keamanan yang didukung:

Komunikasi teks biasa

Untuk membuat komunikasi teks biasa, gunakan URL koneksi yang mirip dengan berikut ini:

String url = "jdbc:spanner://HOST_ADDRESS:PORT/databases/DATABASE_ID;usePlainText=true;isExperimentalHost=true";
try {
      java.sql.Connection connection = DriverManager.getConnection(url);
      try {
        ResultSet rs = connection.createStatement().executeQuery("SELECT * FROM Singers");
        while (rs.next()) {
          System.out.print(rs.getLong(1) + "\t");
          System.out.println(rs.getString(2));
        }
      } catch (Exception e) {
        System.out.println(e.getMessage());
      }
    } catch (Exception e) {
      System.out.println(e.getMessage());
    }

Saat menggunakan token autentikasi dengan TLS atau mTLS untuk endpoint Spanner Omni, tetapkan variabel lingkungan SPANNER_EXPERIMENTAL_HOST_AUTH_TOKEN ke jalur token autentikasi yang dibuat oleh Spanner Omni CLI. Untuk koneksi yang tidak memerlukan kredensial, biarkan variabel ini tidak disetel. Token autentikasi tidak direkomendasikan untuk digunakan klien karena token yang dibuat oleh Spanner Omni akan habis masa berlakunya dan memerlukan perpanjangan manual dengan Spanner Omni CLI.

Koneksi TLS

Untuk membuat koneksi TLS, tambahkan sertifikat CA ke truststore Java atau teruskan secara langsung saat Anda menjalankan aplikasi seperti yang diinstruksikan dalam petunjuk TLS Java SDK. URL JDBC tidak memerlukan parameter tambahan saat membuat koneksi TLS:

String url = "jdbc:spanner://HOST_ADDRESS:PORT/databases/DATABASE_ID?isExperimentalHost=true";

Koneksi mTLS

Untuk membuat koneksi mTLS, URL JDBC memerlukan dua parameter tambahan: clientCertificate dan clientKey. Parameter ini harus menentukan jalur file ke sertifikat klien dan kunci pribadi klien. Kunci pribadi klien harus dalam format yang kompatibel dengan Java seperti yang disebutkan dalam petunjuk mTLS Java SDK:

String url = "jdbc:spanner://HOST_ADDRESS:PORT/databases/DATABASE_ID;clientCertificate=PATH_TO_CLIENT_CERT;clientKey=PATH_TO_CLIENT_KEY;isExperimentalHost=true";