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