במאמר הזה מוסבר איך להשתמש במנהל ההתקן Spanner JDBC כדי לחבר אפליקציות Java ל-Spanner Omni ולהריץ הצהרות SQL.
Java Database Connectivity (JDBC) הוא API סטנדרטי של Java שמספק דרך עקבית לאפליקציות לנהל אינטראקציה עם מסדי נתונים יחסיים. מנהל ההתקן של Spanner JDBC פועל עם Spanner Omni באותו אופן שבו הוא פועל עם Spanner.
באמצעות מנהל ההתקן של JDBC, אתם יכולים להשתמש בכלים ובספריות סטנדרטיים שתואמים ל-JDBC עם Spanner Omni.
חיבורי Spanner Omni JDBC תומכים בשלושה מצבי אבטחה: טקסט פשוט, TLS ו-mTLS.
מידע נוסף מופיע במאמר תחילת העבודה עם Spanner ב-JDBC במסמכי Spanner.
שיקולים לגבי כתובות URL של חיבור
מכיוון ש-Spanner Omni לא מחובר ישירות לפרויקטGoogle Cloud , לא צריך להשתמש ברכיב projects/name בכתובת ה-URL של חיבור ה-JDBC. באופן דומה, מכיוון שלכל פריסת Spanner Omni יש מופע יחיד שכבר נוצר (instances/default), הרכיב instances/name הוא אופציונלי.
יצירת חיבור ל-Spanner Omni
בדוגמאות הבאות מוצגות דרכים ליצירת חיבור ל-Spanner Omni באמצעות מנהל התקן Spanner JDBC לכל מצב אבטחה נתמך:
תקשורת בטקסט פשוט
כדי ליצור תקשורת בטקסט פשוט, משתמשים בכתובת URL לחיבור שדומה לכתובת הבאה:
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());
}
כשמשתמשים באסימון אימות עם TLS או mTLS עבור נקודת קצה של Spanner Omni, צריך להגדיר את משתנה הסביבה SPANNER_EXPERIMENTAL_HOST_AUTH_TOKEN לנתיב של אסימון האימות שנוצר על ידי Spanner Omni CLI. אם לא נדרשים פרטי כניסה לחיבור, לא צריך להגדיר את המשתנה הזה.
לא מומלץ להשתמש באסימוני אימות בלקוח כי התוקף של האסימונים שנוצרים על ידי Spanner Omni פג, וצריך לחדש אותם באופן ידני באמצעות ה-CLI של Spanner Omni.
חיבור TLS
כדי ליצור חיבור TLS, מוסיפים את אישור ה-CA למאגר האישורים המהימנים של Java או מעבירים אותו ישירות כשמריצים את האפליקציה, כמו שמוסבר בהוראות ה-TLS של Java SDK. כתובת ה-JDBC לא דורשת פרמטרים נוספים בזמן יצירת חיבור TLS:
String url = "jdbc:spanner://HOST_ADDRESS:PORT/databases/DATABASE_ID?isExperimentalHost=true";
חיבור mTLS
כדי ליצור חיבור mTLS, צריך להוסיף לכתובת ה-URL של JDBC שני פרמטרים נוספים: clientCertificate ו-clientKey. בפרמטרים האלה צריך לציין את נתיבי הקבצים של אישור הלקוח והמפתח הפרטי של הלקוח, בהתאמה. המפתח הפרטי של הלקוח צריך להיות בפורמט שתואם ל-Java, כפי שמצוין בהוראות ל-Java SDK mTLS:
String url = "jdbc:spanner://HOST_ADDRESS:PORT/databases/DATABASE_ID;clientCertificate=PATH_TO_CLIENT_CERT;clientKey=PATH_TO_CLIENT_KEY;isExperimentalHost=true";