PracticU

חיבור למסד נתונים SQLite - חלק 8

בלי כתוביותעם כתוביות
PracticU › קורס פיתוח אפליקציות - לאנדרואיד - Android - ב-JAVA › חיבור למסד נתונים SQLite - חלק 8
מילון מושגים:
מסד נתונים - אוסף מאורגן של נתונים המאוחסן כך שאפשר לשמור, לחפש, לעדכן ולשלוף אותו ביעילות, לרוב באמצעות שפת שאילתות.
SQLite - מסד נתונים יחסי קל משקל ששמור בקובץ בודד, נפוץ ביישומים מקומיים ובאפליקציות מובייל.
שאילתה - בקשה למסד נתונים לשלוף, להוסיף, לעדכן או למחוק נתונים, לרוב בשפת SQL.
CRUD - ראשי התיבות של ארבע הפעולות הבסיסיות על נתונים: יצירה, קריאה, עדכון ומחיקה.
עמודה - שדה בטבלת מסד נתונים שמחזיק ערך מסוג מסוים עבור כל שורה, למשל שם או תאריך.
תנאי - ביטוי לוגי בקוד שתוצאתו אמת או שקר, וקובע אילו פקודות יתבצעו בהתאם לערכו.
מערך - מבנה נתונים שמאחסן אוסף ערכים מאותו סוג ברצף, שאפשר לגשת אליהם לפי מספר מיקום (אינדקס).
DELETE - פקודת SQL למחיקת שורות מטבלה. גם שיטת HTTP לבקשת מחיקה של משאב בשרת.

חיבור למסד נתונים SQLite - חלק 8
במקום לכתוב שאילתות SQL ולשלוח אותן ל-execSQL, אפשר להשתמש בפונקציות מובנות של המחלקה SQLiteDatabase. בשיעור ממירים את ארבע פעולות ה-CRUD של האפליקציה אליהן.
איך עובדים עם הפונקציות המובנות
1. insert: מעבירים את שם הטבלה products, את הפרמטר null column hack (כאן null, כי לא מוסיפים שורה ריקה) ואובייקט ContentValues. ב-ContentValues, שהוא אוסף של זוגות מפתח וערך, מכניסים עם put את העמודות name ו-price. הפונקציה מחזירה long עם ה-ID שנוסף, ולכן לא צריך קורסור ולא צריך לסגור אותו.
2. update: מעבירים את שם הטבלה, את ה-ContentValues ואת תנאי ה-WHERE, כלומר id שווה ל-ID של המוצר. אם אין תנאי שולחים null. הפרמטר האחרון הוא whereArgs.
3. סימני שאלה ב-WHERE: אפשר לכתוב id = ? ולתת מערך מחרוזות שמחליף את סימני השאלה. כשיש כמה תנאים זה נוח יותר משרשור, ועם תנאי אחד אפשר להישאר בשיטה הראשונה.
4. delete: מציינים את הטבלה ואת ה-WHERE, ואפשר להשתמש באותה שיטה עם סימן שאלה.
5. query: במקום שאילתת SELECT קוראים ל-db.query, שמקבלת פרמטרים לסינון, חיבור וקיבוץ. כאן מעבירים רק את הטבלה ו-null לשאר, ומקבלים קורסור של כל הטבלה.
בדיקה ומסקנות
הפונקציות המובנות מייצרות בעצמן שאילתות SQL ושולחות אותן למסד הנתונים. לפעמים שאילתת SQL גמישה ונוחה יותר, והמרצה הדגיש שכדאי להכיר את הפקודות הנפוצות של SQL. אחרי ההרצה הוסיפו מוצר, עדכנו אותו (Large Orange ל-Big Orange) ומחקו בננה, וכל הפעולות הצליחו.
אפשר עכשיו לבצע הוספה, עדכון, מחיקה ושליפה ב-SQLite בלי לכתוב אף שאילתת SQL.
השיעור הבא בקורס: חיבור למסד נתונים SQLite - חלק 9

פרקי ההרצאה: חיבור למסד נתונים SQLite - חלק 8

  1. 00:00

    פונקציות מובנות במקום שאילתות SQL

  2. 00:58

    הוספת רשומה עם db.insert

  3. 01:55

    מילוי ContentValues עם put

  4. 02:58

    קבלת ה-ID החדש מ-insert

  5. 04:18

    עדכון עם db.update

  6. 05:14

    תנאי WHERE בפונקציית update

  7. 06:11

    סימני שאלה וארגומנטים לתנאי

תמלול ההרצאה: חיבור למסד נתונים SQLite - חלק 8

הטקסט המלא של הדקות הראשונות בהרצאה «חיבור למסד נתונים SQLite - חלק 8» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:01

    כאשר ביצענו את ה-Insert, Update, Delete ו-Select, מה שעשינו זה השתמשנו בשאילתות SQL בכדי לייצר הוראות שאותן שלחנו לדאטאבייס, וכך אמרנו לדאטאבייס מה אנחנו רוצים לבצע.

  2. 00:16

    אבל יש לנו built-in functions, כל מיני פונקציות שקיימות בתוך המחלקה SQLite Database, שמאפשרות לנו לבצע Insert, Update, Delete ו-Select.

  3. 00:27

    לפעמים אולי יותר קל להשתמש בהן במקום לייצר שאילתות sql בעצמכם אז בואו נראה איך אנחנו עובדים איתן אז בואו ניגש לכל אחת מהפונקציות שבנינו insert update delete ו-select ונשנה אותה כך שבמקום לייצר שאילתת sql אנחנו משתמשים ב-buildin functions שלהם אז אין לנו פה צורך בשאילתת הsql ולכן אין לנו צורך גם ב-exec sql הזאת

  4. 00:58

    יש לנו צורך ב-db.insert אנחנו רואים שמוכנות לנו כבר פונקציה, פונקציות לביצוע insert, update, delete ו-select. אז insert אומרת לנו קודם כל איזה טבלה אתם רוצים להכניס אליה מידע.

  5. 01:14

    אז אנחנו רוצים לתת את טבלת הפרודקטס, ולאחר מכן יש לנו איזה האמת פרמטר מוזר כזה שנקרא null column hack, ואם תקראו מה בדיוק הפרמטר הזה מציין, תראו שהוא אומר לכם שאם אתם מוסיפים שורה ריקה, אז אתם צריכים לתת אילו עמודות אתם רוצים שיהיה בהם נעל, משהו קצת הזוי לדעתי, אנחנו כרגע נשים פה נעל, אין לנו צורך להשתמש במשתנה הזה,

  6. 01:46

    כי גם ככה אנחנו לא רוצים להוסיף שורה ריקה. והדבר הבא שאנחנו רוצים זה content values. content values זה משתנה שמכיל בתוכו אוסף של key values, והאוסף הזה מתאר איזה עמודות אתם רוצים להכניס אליהם אילו ערכים.

  7. 02:05

    זאת אומרת ששנייה לפני זה בואו נכין אובייקט מטיפוס content values. בואו נייצר פה content values כזה חדש ואז ניגש ל-content values ופשוט על ידי פונקציית put נכניס את המידע.

  8. 02:25

    עבור name אנחנו רוצים את product get name content values put עבור price אנחנו רוצים את product get price אנחנו ככה שמים את השמות של העמודות שאליהם אנחנו רוצים להכניס מידע ומה המידע שאנחנו רוצים להכניס אליהם ואז אנחנו פשוט נותנים את ה-content values הזה לפונקציית insert.

  9. 02:56

    בואו רק נעשה את הנבנה את ה-db get writable דייטאבייס כמה שיותר קרוב להוצאה לפועל של הפקודה ומשהו נוסף מגניב שיש בפונקציית האינסרט זה שהיא מחזירה לנו כבר את ה-ID שהתווסף אם תסתכלו על החתימה תראו שהיא מחזירה משתנה מסוג לונג אז אנחנו כבר כאן יכולים לפתוח את האינט ID שלנו ולקבל את המשתנה הזה אנחנו לא צריכים את הקורסור ואת המוב נקסט

  10. 03:31

    ואת הגט אינט ואת כל אלה, אפשר להוריד אותם. אני מוציא את הקורסור, לא צריך לסגור אותו. ואנחנו יכולים כבר להסתפק בזה. בואו נמחק את כל מה שלא צריך מפה למעשה בצורה כזאת.

  11. 03:52

    נוסיף כאן נקודה פסיק רק. והנה יש לנו כבר פונקציית add product, מוכנה עם עבודה עם פונקציית insert build-in ובשום מקום לא ציינו כאן שאילתת sql אז לפעמים זה קצת יותר נוח לשימוש לא תמיד יכול להיות שבמקרים מסוימים פונקציית sql או שאילתת sql זה משהו שהוא הרבה יותר גמיש ונוח לשימוש אבל לצורך הדוגמאות

  12. 04:23

    בואו נמיר את כל מה שעשינו לשיטה הזאת גם באפדייט אנחנו רוצים לבנות בדיוק אובייקט כזה, בואו נשים אותו פה, אנחנו לא צריכים את שאילתת ה-SQL, ניפטר ממנה, אנחנו לא רוצים את Exec SQL, אנחנו רוצים את פונקציית Update, שגם כאן אומרת לנו, אוקיי, מה השם של הטבלה?

  13. 04:51

    Products, יכול להיות לנו הרי הרבה טבלאות, אנחנו רוצים להכניס את זה ל-Products. איזה values אתם רוצים להכניס? זה יהיה אובייקט ה-content values שבנינו ואיזה שאילתת where אתם רוצים שאני אשלב בשאילתה.

  14. 05:11

    הפונקציות האלה שאנחנו קוראים להן מייצרות שאילתת sql והן שולחות את השאילתה לדאטאבייס. אז בשאילתת הsql של update יכול להיות שיש לנו where.

  15. 05:23

    אם אין לנו אז אנחנו שולחים null. אם יש לנו אנחנו צריכים לשלוח בדיוק את החלק של ה-where. החלק של ה-Ware שלנו היה ID שווה ופה היה את ה-ID המדויק שאנחנו רוצים עבורו לבצע Update.

  16. 05:42

    הפרמטר הבא בתור זה איזשהו WearArgs שכרגע זה Null וכבר נבין מה זה. אז הנה יש לנו פה את היכולת לבצע Update עבור טבלת Products.

  17. 05:56

    אלה הערכים שאנחנו רוצים להכניס רק לרשומה שעונה על התנאי הזה. או על הרשומות שעונות על התא הזה, כרגע זאת רשומה אחת, ואין לנו פה עוד פרמטרים נוספים.

  18. 06:09

    פונקציה update אפשר לקרוא לה גם בשיטה כזאת, שימו לב. כאן אנחנו יכולים לשים סימן שאלה, ופה אנחנו נותנים רשימה של ערכים שיחליפו

לקורס המלא: קורס פיתוח אפליקציות לאנדרואיד

ההרצאה הקודמת: חיבור למסד נתונים SQLite - חלק 7

ההרצאה הבאה: חיבור למסד נתונים SQLite - חלק 9

הרצאות קשורות מקורסים אחרים

  • חיבור אפליקציה למסד נתונים
  • קורס PHP - הרצאה 10 - חיבור למסד נתונים
  • חיבור למסד נתונים - Connection String
  • יצירת אפליקציה עם חיבור למסד נתונים

קורסים נוספים במסלול

  • קורס יסודות התכנות - שפת JAVA - קורס ג'אווה למתחילים
  • קורס פיתוח אפליקציות - לאייפון iPhone iOS - ב-Swift-Xcode
  • קורס פלאטר - Flutter - שפת DART של גוגל למובייל - פיתוח אפליקציות לאנדרואיד ואייפון
  • קורס PhoneGap - פיתוח אפליקציות לאנדרואיד ואייפון