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 fungsinya 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 teks biasa, TLS, TLS dengan kredensial, dan mTLS.

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

Sebelum memulai

Untuk menggunakan Spanner Omni dengan driver JDBC, gunakan driver JDBC Spanner versi 2.41.0 atau yang lebih baru.

Jika Anda menggunakan Maven tanpa Bill of Materials (BOM), tambahkan kode berikut ke dependensi file pom.xml:

<dependency>
  <groupId>com.google.cloud</groupId>
  <artifactId>google-cloud-spanner-jdbc</artifactId>
  <version>2.41.0</version>
</dependency>

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.

Untuk menghubungkan driver JDBC ke Spanner Omni, bukan Spanner, tambahkan properti ;type=omni ke URL koneksi.

Membuat koneksi Spanner Omni

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

Teks biasa

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

String url = "jdbc:spanner://HOST_ADDRESS:PORT/databases/DATABASE_ID;usePlainText=true;type=omni";
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());
}

TLS

Untuk membuat koneksi TLS, tambahkan sertifikat CA ke truststore Java atau tentukan truststore kustom saat Anda menjalankan aplikasi, seperti yang dijelaskan dalam Mengonfigurasi truststore Java. URL JDBC tidak memerlukan parameter autentikasi tambahan:

String url = "jdbc:spanner://HOST_ADDRESS:PORT/databases/DATABASE_ID;type=omni";

TLS dengan kredensial

Untuk membuat koneksi TLS dengan autentikasi nama pengguna dan sandi, tambahkan sertifikat CA ke truststore Java seperti yang dijelaskan dalam Mengonfigurasi truststore Java, dan tentukan properti username dan password di URL JDBC:

String url = "jdbc:spanner://HOST_ADDRESS:PORT/databases/DATABASE_ID;type=omni;username=USERNAME;password=PASSWORD";

mTLS

Untuk membuat koneksi mTLS, tambahkan sertifikat CA ke truststore Java seperti yang dijelaskan dalam Mengonfigurasi truststore Java, dan tentukan parameter clientCertificate dan clientKey di URL JDBC. Kunci pribadi klien harus dalam format PKCS#8 yang kompatibel dengan Java, seperti yang dijelaskan dalam petunjuk mTLS Java SDK:

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