
SQLiteOpenHelper ומגדירה בה את הטבלה הראשונה.Database שיורשת מ-SQLiteOpenHelper. הבנאי קורא ל-super עם ה-Context של האפליקציה (MyApp.getContext()), שם למסד (למשל ProductsDatabase), null במקום ה-factory שלא בשימוש, ומספר גרסה (כאן 1).onCreate ו-onUpgrade. מקבלים בהן אובייקט SQLiteDatabase, שדרכו מבצעים פעולות על המסד.execSQL.drop table products ויוצרים אותה לפי onCreate.MainActivity מגדירים שדה מסוג Database ויוצרים אותו. משם אפשר לבנות את פעולות ה-insert, update, delete ו-select.create table productsid integer primary key autoincrement: מספר שלם שהוא גם מפתח ראשי, והמסד נותן אותו אוטומטית.name text not null: מחרוזת שחובה לספק.price real default 0: מספר עשרוני, והמשתמש לא חייב להכניס ערך.הטקסט המלא של הדקות הראשונות בהרצאה «חיבור למסד נתונים SQLite - חלק 3» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
אז הדבר הראשון שאנחנו הולכים לראות זה איך ליצור את הדאטאבייס. מה שאנחנו הולכים לעשות זה לעבוד עם מחלקה שנקראת sqlite open helper ולמעשה אנחנו הולכים לבנות מחלקה משלנו שיורשת את sqlite open helper ובה אנחנו מבצעים את כל הפעולות שאנחנו רוצים לעשות על הדאטאבייס.
אז בואו ניצור כאן מחלקה באמת בואו נקרא לה דאטאבייס פשוט ו-nirash extends at sqlite open helper. קודם כל, אנחנו רוצים לבנות איזשהו קונסטרקטור, בואו נבנה פה public database, ובקונסטרקטור אנחנו רוצים לגשת ל-super ולשלוח את הקונטקסט.
הקונטקסט שלנו נגיש על ידי myapp.getcontext. זאת אומרת, sqlite open helper דורשת איזשהו קונטקסט ואנחנו מביאים לה את הקונטקסט של האפליקציה.
הדבר הבא, אנחנו צריכים לומר איזה דאטאבייס אנחנו רוצים לבנות, כלומר מה השם שלו. אם אנחנו מתעסקים עם מוצרים, בואו נניח שכל האפליקציה שלנו מתעסקת עם מוצרים, אז בואו נקרא לכל הדאטאבייס כולו "ProductsDatabase", הוא כמובן יהיה רק של האפליקציה שלנו.
לאחר מכן יש לנו איזשהו משתנה מסוג קורס או פקטורי שאנחנו לא מבצעים בו שימוש כרגע, נעביר לו נ"ל, ואז את המספר גרסה של הדאטאבייס וזה יהיה אחד כרגע.
אחרי שבנינו את הקונסטרקטור אנחנו צריכים לממש שתי פונקציות. בואו ניגש ונלחץ כאן על implement methods ושתי הפונקציות הן onCreate ו-onUpgrade. onCreate זאת פונקציה שאוטומטית מתבצעת במידה ואנחנו מבצעים איזושהי פעולה על הדאטאבייס אבל הדאטאבייס לא קיים.
דוגמה בפעם הראשונה שהיוזר מריץ את האפליקציה שלנו ומבצע פעולה על הדאטאבייס. ב-onCreate אנחנו רוצים ליצור את הדאטאבייס מ-0.
onUpgrade תתבצע במידה והגרסה שקיימת היא ישנה יותר מהגרסה שכתובה כאן. נניח אם אנחנו מבצעים איזשהו שדרוג לאפליקציה והיוזר מוריד את השדרוג.
ב-onUpgrade אנחנו מחליטים מה אנחנו רוצים לעשות, האם אנחנו רוצים לשנות את הדאטאבייס, אם אנחנו רוצים למחוק אותו וליצור אותו מחדש, אז בואו נבנה את onCreate ואת onUpgrade.
ב-onCreate אנחנו רוצים לגשת לדאטאבייס עצמו, ואת זה אנחנו עושים על ידי המשתנה db שקיבלנו לתוך הפונקציה.
אנחנו רואים שקיבלנו משתנה מסוג sqliteDatabase, וזה משתנה שמאפשר לנו לבצע פעולות על הדאטאבייס עצמו.
אז אנחנו רוצים לקרוא לפונקציה שנקראת execsql ולתת לה פקודת sql, שיוצרת את כל הטבלאות כרגע אנחנו מתעסקים עם טבלה אחת אז בואו נכתוב פקודת sql שיוצרת טבלה.
במידה ואתם לא כל כך מכירים את שפת sql כדאי לכם לגשת לאיזשהו אתר אינטרנט וללמוד את שפת sql שהיא שפה מאוד מאוד פשוטה הבסיס שלה לפחות בכדי שיהיה לכם את היכולת לבצע פעולות על הדאטאבייס כמו queries כמו insert update delete וכדומה.
אז בואו נכתוב שאילתת sql שיוצרת טבלה. אז יש לנו פה את הפקודה create table ושימו לב ששפת sql היא לא k-sensitive ברוב המקרים אבל מאוד מקובל שהפקודות של שפת sql עצמה יהיו באותיות דלות ושאר הדברים לדוגמה שמות של טבלאות או שמות של עמודות יהיו בשמות שאנחנו מחליטים או בconvention
שלנו. קריאי טייבל ואנחנו רוצים ליצור טבלה שנקראת פרודקטס ואנחנו רוצים שיהיה לה ID והוא יהיה