פרסומת
ג'אווה מספקת JDBC (קישוריות Java DataBase) כחלק מ- Java SDK (ערכת פיתוח תוכנה). באמצעות זה ממשק API, קל מאוד להתחבר ל- מאגר נתונים יחסי אז מה זה בסיס נתונים, בכל מקרה? [MakeUseOf מסביר]עבור מתכנת או חובב טכנולוגיה, הרעיון של בסיס נתונים הוא דבר שאפשר לקחת אותו כמובן מאליו. עם זאת, עבור אנשים רבים הרעיון של בסיס נתונים עצמו הוא קצת זר ... קרא עוד ולבצע פעולות נפוצות כגון שאילתות, הוספה, עדכון ומחיקת רשומות.
אמנם ממשק ה- API של JDBC הליבה כלול בג'אווה, אך חיבור למסד נתונים מסוים כגון MySQL או SQL Server דורש רכיב נוסף המכונה מנהל התקן של מסד הנתונים. מנהל התקן מסד נתונים זה הוא רכיב תוכנה המתרגם את שיחות ה- JDBC הליבה לפורמט שמבין אותו מסד נתונים.
במאמר זה, נסתכל על הפרטים של חיבור למסד נתונים של MySQL וכיצד לבצע איתו כמה שאילתות.
מנהל התקן מסד הנתונים MySQL
כפי שהוסבר לעיל, כדי להיות מסוגל להתחבר למסד נתונים של MySQL, אתה זקוק למנהל התקן JDBC עבור MySQL. זה נקרא מנהל התקן Connector / J וניתן להוריד ממנו אתר MySQL כאן.
לאחר שתוריד את הקובץ ZIP (או TAR.GZ), חלץ את הארכיון והעתק את קובץ ה- JAR
mysql-connector-java – bin.jar למיקום מתאים. קובץ זה נדרש להפעלת קוד כלשהו המשתמש במנהל התקן MySQL JDBC.יצירת מסד נתונים לדוגמא
בהנחה שהורדת את מסד הנתונים של MySQL ו- הגדר אותו כראוי כיצד להתקין בסיס נתונים של MySQL ב- Windowsאם אתה כותב לעתים קרובות יישומים המתחברים לשרתי מסד נתונים, זה נחמד אם אתה יודע להתקין בסיס נתונים של MySQL במחשב Windows שלך למטרות בדיקה. קרא עוד במקום שיש לך גישה אליו, הרשה לנו ליצור בסיס נתונים לדוגמא, כך שנוכל להשתמש בו לחיבור וביצוע שאילתות.
התחבר למסד הנתונים באמצעות לקוח לבחירתך והפעל את ההצהרות הבאות כדי ליצור בסיס נתונים לדוגמא.
ליצור מדגם מסד נתונים;
אנו זקוקים גם לשם משתמש וסיסמא בכדי שנוכל להתחבר למסד הנתונים (אלא אם כן ברצונך להתחבר כמנהל, וזה בדרך כלל רעיון רע).
להלן יוצר משתמש בשם מבחן שיחברו למסד הנתונים MySQL מאותה מכונה בה הוא פועל (מסומן על ידי מארח מקומי), באמצעות הסיסמה securepwd.
ליצור משתמש 'מבחן' @ 'localhost' המזוהה על ידי 'securepwd';
אם אתה מתחבר למסד נתונים הפועל במחשב אחר (בשם remotemc), עליך להשתמש בדברים הבאים (remotemc יכול להיות שם מארח או כתובת ip):
ליצור משתמש 'מבחן' @ 'remotemc' המזוהה על ידי 'securepwd';
כעת, לאחר ששם המשתמש והסיסמה נוצרו, עלינו להעניק גישה למסד הנתונים לדוגמה שנצבר בעבר.
הענק הכל לדוגמה. * ל- 'testuser' @ 'localhost';
לחלופין, אם בסיס הנתונים מרוחק:
הענק הכל לדוגמה. * ל- 'testuser' @ 'remotemc';
כעת עליך לאמת שאתה יכול להתחבר למסד הנתונים כיצד להתקין בסיס נתונים של MySQL ב- Windowsאם אתה כותב לעתים קרובות יישומים המתחברים לשרתי מסד נתונים, זה נחמד אם אתה יודע להתקין בסיס נתונים של MySQL במחשב Windows שלך למטרות בדיקה. קרא עוד כמשתמש שיצרת זה עתה עם אותה סיסמה. תוכל גם להריץ את הפקודות הבאות לאחר התחברות, כדי לוודא שההרשאות נכונות.
צור ג'ו טבלה (מזהה int ראשוני auto_increment, שם varchar (25)); טיפת שולחן ג'ו;
הגדרת נתיב Class Java
הבה נעבור כעת לפרטים כיצד להתחבר ל- MySQL ג'אווה 10 מושגי ג'אווה ליבה שעליכם ללמוד כאשר אתם מתחיליםבין אם אתה כותב ממשק משתמש (GUI), פיתוח תוכנה בצד השרת, או יישום נייד באמצעות אנדרואיד, לימוד ג'אווה ישמש אותך היטב. להלן כמה מושגי Java בסיסיים שיעזרו לך להתחיל בעבודה. קרא עוד . השלב הראשון הוא לטעון את מנהל ההתקן של מסד הנתונים. הדבר נעשה על ידי קריאת הדברים הבאים במקום מתאים.
Class.forName ("com.mysql.jdbc. נהג");
הקוד יכול לזרוק חריג, כך שתוכל לתפוס אותו אם אתה מתכוון להתמודד איתו (כגון עיצוב הודעת השגיאה עבור ממשק משתמש גרפי).
נסה את {Class.forName ("com.mysql.jdbc. נהג"); } catch (ClassNotFoundException ex) {// השתמשו בחריג כאן. }
מקובל מאוד להפעיל קוד זה בבלוק סטטי בכיתה כך שהתוכנית נכשלת מייד אם לא ניתן לטעון את מנהל ההתקן.
מדגם בכיתה ציבורית. {סטטי {נסה {Class.forName ("com.mysql.jdbc. נהג"); } catch (ClassNotFoundException ex) {System.err.println ("לא ניתן לטעון את מנהל ההתקן של MySQL"); } } }
כמובן, כדי להיות מסוגל למצוא את מנהל ההתקן, יש להפעיל את התוכנית כאשר מנהל ההתקן JAR (שהורד והוצא למעלה) כלול בנתיב הכיתה כדלקמן.
java -cp mysql-connector-java--bin.jar:...
התחברות ל- MySQL מג'אווה
כעת, לאחר שברקנו את פרטי הטעינה של מנהל ההתקן MySQL מג'אווה, הרשו לנו להתחבר למסד הנתונים. אחת הדרכים ליצור חיבור בסיס נתונים לשימוש ב- מנהל התקן.
מחרוזת jdbcUrl =...; חיבור con = DriverManager.getConnection (jdbcUrl);
ומה זה jdbcUrl? זה מציין את פרטי החיבור, כולל השרת בו נמצא מסד הנתונים, שם משתמש וכן הלאה. להלן כתובת אתר לדוגמה לדוגמא שלנו.
מחרוזת jdbcUrl = "jdbc: mysql: // localhost / sample? user = testuser & password = secrepwd ";
שימו לב שכללנו את כל הפרמטרים הדרושים לחיבור, כולל שם המארח (מארח מקומי), שם משתמש וסיסמא. (הכללת הסיסמה כזו אינה שיטה טובה, ראה חלופות למטה.)
באמצעות זה jdbcUrlלהלן תוכנית שלמה לבדיקת קישוריות.
מדגם בכיתה ציבורית. {סטטי {נסה {Class.forName ("com.mysql.jdbc. נהג"); } catch (ClassNotFoundException ex) {System.err.println ("לא ניתן לטעון את מנהל ההתקן של MySQL"); }} main void public הראשי (מחרוזת [] args) זורק חריג {String jdbcUrl = "jdbc: mysql: // localhost / sample? user = testuser & password = securepwd "; חיבור con = DriverManager.getConnection (jdbcUrl); System.out.println ("מחובר!"); con.close (); } }
שימו לב כי חיבור מסד נתונים הוא משאב יקר בתוכנה ועליו להיסגר כראוי כנ"ל. לעומת זאת הקוד הקודם אינו סוגר את הקשר במקרה של חריג. כדי לסגור את החיבור ביציאה רגילה או לא תקינה, השתמש בתבנית הבאה:
נסה (Connection con = DriverManager.getConnection (jdbcUrl)) {System.out.println ("מחובר!"); }
כפי שצוין לעיל, רעיון רע להטמיע את הסיסמה בכתובת האתר של JDBC. כדי לציין את שם המשתמש והסיסמה ישירות, באפשרותך להשתמש במקום זאת באפשרות החיבור הבאה.
String jdbcUrl = "jdbc: mysql: // localhost / sample"; נסה (Connection con = DriverManager.getConnection (jdbcUrl, "testuser", "securepwd")) { }
שאילתת מסד הנתונים מג'אווה
כעת, לאחר שהחיבור למסד הנתונים נוצר, הבה נראה כיצד לבצע שאילתה, כגון שאילתת גירסת מסד הנתונים:
בחר גרסה ();
שאילתה מבוצעת בג'אווה באופן הבא. א הצהרה נוצר אובייקט ושאילתה מבוצעת באמצעות לבצע שאילתה() שיטה המחזירה א סט תוצאות.
String queryString = "בחר גרסה ()"; הצהרה stmt = con.createStatement (); ResultSet rset = stmt.executeQuery (queryString);
הדפס את הגרסה מה- סט תוצאות כדלהלן. 1 מתייחס לאינדקס של העמודה בתוצאות, החל מ -1.
while (rset.next ()) {System.out.println ("גרסה:" + rset.getString (1)); }
לאחר עיבוד התוצאות, צריך לסגור את האובייקטים.
rset.close (); stmt.close ();
וזה מכסה את כל מה שיש לחיבור ל- MySQL מג'אווה ולביצוע שאילתה פשוטה.
האם השתמשת ב- JDBC עם MySQL בפרויקטים שלך? אילו בעיות, אם בכלל, היו לך עם מסדי נתונים וג'אווה? אנא הודע לנו בתגובות למטה.