Transcript JAVA
© Keren Kalif JDBC קרן כליף © Keren Kalif ביחידה זו נלמד: עבודה עם סביבת העבודה MySql התחברות ל MySql -מתוך קוד Java הרצת שאילתות בסיסיות עבודה עם PreparedStatement הצגת תוצאות השאילות בgui - 2 התקנת סביבת העבודה MySql © Keren Kalif 3 כדי לעבוד עם MySqlיש להתקין XAMPPולדאוג שבבחירת הרכיבים בהתקנה יהיה את MySql לאחר ההתקנה ,יש לוודא כי ה service -של MySqlבמצב :Running יתכן וה service -של ה.NET- רץ ותופס את הפורט: -1ניתן לעצור אותו באמצעות הפקודהnet stop w3svc : -2לשנות את הפורט שה- XAMPPמנסה להתחבר ל.SQL - הוראות בלינק: http://mambycamara.word press.com/2011/01/13/dr upal-7-windows-7xampp-1-7/ © Keren Kalif MySql עבודה עם 4 http://localhost/phpmyadmin/ : כדי להיכנס לכלי : לצורך הדוגמא survivors הנקראDB נייצר tribes נייצר בו טבלה הנקראית : שדות2 לטבלה זו נגדיר Auto Increment - וPrimary Key ,INT שיהיהid 30 באורךVARCHAR שיהיהName 10- survivors.sql © Keren Kalif התחברות ל MySql -מתוך הJAVA - 5 טעינת הדרייבר של מנהל ה- ,JDBCבדוגמא זו של MySql הגדרת מיקום ה- DBושמו. יכול כמובן להיות על מחשב מרוחק. הרצת שאילתא והצגת התוצאות סגירת ה- connection התחברות ל MySql -מתוך הJava - © Keren Kalif כדי שהתוכנית תוכל לטעון את הדרייבר של מנהל ה ,JDBC -יש להוסיף את ה JAR -הבא לפרוייקט: 6 דוגמא לשאילתת INSERT connection -את סגירת ה finally -נעדיף לשים ב © Keren Kalif 7 © Keren Kalif 8 SQLException : ולכן, הינה למעשה אוסף של חריגותSQLException שחרור כל משאבים יש לשחרר את כל המשאבים הבאים ,וכמובן עדיף בfinally - © Keren Kalif 9 ארכיטקטורת העבודה מול JDBC © Keren Kalif קוד ה JAVA -טוען את הדרייבר המתאים באמצעות הJdbcManager - הדרייבר הוא זה המתקשר מול הDB - המתאים דרך הרשת. הדרייבר הוא מחלקה של של Java התמונה לקוחה מ: http://www.roseindia.net/jdbc/understanding-the-jdbcarchitect.shtml 10 טעינת הדרייבר © Keren Kalif 11 פקודות להרצת שאילתות מול הDB - © Keren Kalif – executeQuery מחזירה ResultSetעבור שאילתת SELECT – executeUpdate מריצה שאילתות שמעדכנות את בסיס הנתונים .מחזירה את כמות השורות שהושפעו מהפעולה – execute מריצה כל סוג של שאילתא TRUEאם תוצר השאילתא הוא ResultSetו FALSE -אחרת הרצת מתודה שאינה תואמת את סוג השאילתא תגרור תעופה 12 © Keren Kalif TimeOut תזרק SQLExceptionאם לא תתקבל תשובה בזמן המבוקש. הפרמטר הוא בשניות. 13 © Keren Kalif Prepared Statement 14 ראינו הגדרת שאילתות באמצעות אובייקט Statementאשר משתמש במחרוזת כייצוג לשאילתא עם ערכים באופן פעולה זה ה DB -בונה את השאילתא כל פעם בזמן ריצה ומריץ ניתן לעבוד גם עם PreparedStatementובמקרה זה יש אופטימיזציה המבוצעת בשלב ה PreCompile -ולכן יותר יעילה במקרים בהם מריצים את אותה שאילתא כמה פעמים PreparedStatement יורשת מ Statement -ולכן רק אופן שליחת הפרמטרים לשאילתא שונה ,ההרצה זהה © Keren Kalif דוגמא לשימוש בPreparedStatement - שותלים את הפרמטרים באמצעות שיטות .כלומר במקום כל '?' בשאילתא תהייה הצבה של ערך. 15 © Keren Kalif שדה מסוג תאריך 16 java.sql.Date year, month, day java.sql.Time hours, minutes, seconds java.sql.Timestamp year, month, day, hours, minutes, seconds, nanoseconds דוגמא להכנסת רשומה עם תאריך © Keren Kalif 17 © Keren Kalif 18 לטבלהResultSet קישור שבקובץ הדוגמאותfillTableFromDb הדוגמא - היורשת מQueryTableModel לשים לב למחלקה AbstractTableModel DB - מחלקה יעודית לעבודה מול ה ביחידה זו למדנו: עבודה עם סביבת העבודה MySql התחברות ל MySql -מתוך קוד Java הרצת שאילתות בסיסיות עבודה עם PreparedStatement הצגת תוצאות השאילות בgui - © Keren Kalif 19