שימוש במנהל התקן JDBC כדי להתחבר ל-Spanner Omni

במאמר הזה מוסבר איך להשתמש במנהל ההתקן Spanner JDBC כדי לחבר אפליקציות Java ל-Spanner Omni ולהריץ הצהרות SQL.

‫Java Database Connectivity (JDBC) הוא Java API סטנדרטי שמספק דרך עקבית לאפליקציות לקיים אינטראקציה עם מסדי נתונים יחסיים. מנהל ההתקן של Spanner JDBC פועל עם Spanner Omni באותו אופן שבו הוא פועל עם Spanner.

באמצעות מנהל ההתקן של JDBC, אתם יכולים להשתמש בכלים ובספריות סטנדרטיים שתואמים ל-JDBC עם Spanner Omni.

חיבורי Spanner Omni JDBC תומכים בטקסט רגיל, ב-TLS, ב-TLS עם אישורים וב-mTLS.

מידע נוסף מופיע במאמר תחילת העבודה עם Spanner ב-JDBC במסמכי Spanner.

לפני שמתחילים

כדי להשתמש ב-Spanner Omni עם מנהל ההתקן של JDBC, צריך להשתמש במנהל ההתקן של Spanner JDBC בגרסה 2.41.0 ואילך.

אם משתמשים ב-Maven בלי Bill of Materials (BOM), צריך להוסיף את הקוד הבא ליחסי התלות בקובץ pom.xml:

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

שיקולים לגבי כתובות URL של חיבור

מכיוון ש-Spanner Omni לא מחובר ישירות לפרויקטGoogle Cloud , לא צריך להשתמש ברכיב projects/name בכתובת ה-URL של חיבור ה-JDBC. באופן דומה, מכיוון שלכל פריסת Spanner Omni יש מופע יחיד שכבר נוצר (instances/default), הרכיב instances/name הוא אופציונלי.

כדי לקשר את מנהל ההתקן של JDBC ל-Spanner Omni במקום ל-Spanner, מוסיפים את המאפיין ;type=omni לכתובת ה-URL של החיבור.

יצירת חיבור ל-Spanner Omni

בדוגמאות הבאות מוצגות דרכים ליצור חיבור ל-Spanner Omni באמצעות מנהל ההתקן Spanner JDBC לכל הגדרת אבטחה נתמכת:

טקסט פשוט

כדי ליצור חיבור בטקסט רגיל, משתמשים בכתובת URL לחיבור שדומה לכתובת הבאה:

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

כדי ליצור חיבור TLS, צריך להוסיף את אישור ה-CA לחנות האישורים של Java או לציין חנות אישורים מותאמת אישית כשמריצים את האפליקציה, כמו שמתואר במאמר בנושא הגדרת חנות האישורים של Java. כתובת ה-URL של JDBC לא דורשת פרמטרים נוספים לאימות:

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

TLS עם פרטי כניסה

כדי ליצור חיבור TLS עם אימות של שם משתמש וסיסמה, צריך להוסיף את אישור ה-CA למאגר האישורים המהימנים של Java, כמו שמתואר במאמר הגדרת מאגר האישורים המהימנים של Java, ולציין את המאפיינים username ו-password בכתובת ה-URL של JDBC:

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

mTLS

כדי ליצור חיבור mTLS, מוסיפים את אישור ה-CA למאגר האישורים המהימנים של Java כמו שמתואר במאמר הגדרת מאגר האישורים המהימנים של Java, ומציינים את הפרמטרים clientCertificate ו-clientKey בכתובת ה-URL של JDBC. המפתח הפרטי של הלקוח חייב להיות בפורמט PKCS#8 שתואם ל-Java, כפי שמתואר בהוראות ל-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";