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