
הטקסט המלא של הדקות הראשונות בהרצאה «הוספת מוצר חדש ל-MySQL» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
בסרטון הזה אנחנו רוצים לראות איך אנחנו מוסיפים מוצר חדש לדאטאבייס. הקונטרולר שלנו, בואו נראה את הפונקציה בקונטרולר, אולי טיפה נקטין את התו הזה ואז נראה יותר קודם.
הנה הפונקציה בקונטרולר, מה שהיא מבצעת זה יוצרת כאן אובייקט מהמודל שלנו, בלי ID, לא קיבלנו ID, יש לו את ה-BodyName, Price ו-Stock שקיבלנו מהלקוח, ויש לנו כאן את הבדיקה של ג'וי מבחינת ולידציה.
אם הבדיקה עברה בהצלחה אנחנו קוראים לפונקציה AddProductAsync ושולחים את האובייקט הזה שיש לו name, price ו-stock בתוכו ואנחנו רוצים להוסיף אותם.
קיבלנו בחזרה, אנחנו פה מקבלים בחזרה מהביזנס לוג'יק את המוצר כולל ה-ID ומחזירים אותו לקליינט. מה אנחנו עושים בפונקציה AddProductAsync? דבר ראשון נייצר שאילתת sql בואו נייצר אותה כמובן עם סטרינג אינטרפוליישן ויש לנו פה פקודת אינסרט שלמדנו.
into products לתוך המידע שאנחנו רוצים להוסיף הוא רק product name unit price units in stocks שימו לב שזה השמות שחייבים להיות בדאטאבייס זה מה שהדאטאבייס מכיר ואז values ומה המידע שאנחנו רוצים להוסיף.
אז אם אנחנו רוצים להוסיף את החבר'ה האלה אז אנחנו צריכים להבין שsql חייבת להגיע בגרש גרש אם אנחנו רוצים לתאר לה מכרוזת. זאת אומרת שהמכרוזת שמגיעה מפה מהשם של המוצר זה המכרוזת בואו נשלב אותה product.name אנחנו לא יכולים לכתוב את זה בצורה כזאת כי אם נכתוב את זה בצורה כזאת אז זה כמובן תהיה שגיאה מבחינת שפת sql אם
אנחנו רוצים לתת לשפת sql מידע מכרוזתי אז מבחינת השפה עצמה הוא חייב להיות בגרש גרש אם המידע שלנו הוא מידע מספרי כמו לדוגמה הפרייס או הסטוק אז אנחנו לא צריכים לעטוף אותו בגרש גרש בואו ניתן לו את product.price ו-seek ונשרשר לתוכו גם, נשתול לתוכו את product.stock זה בעצם המידע שמגיע מכאן מהאובייקט product שזה האובייקט של המודל שלנו.
אז הנה יש לנו פה את השאילתא עצמה שמתארת בדיוק הוספה של המוצר שקיבלנו. מה אנחנו עושים איתה? אנחנו רוצים לגשת לדל נקודה ולקרוא ל-execute async ולתת את ה-sql.
עכשיו הפונקציה execute async היא בעצם לא תחזיר לנו טבלה במקרה הזה. האמת שעכשיו אני רואה שאם היא לא מחזירה לנו במקרה הזה טבלה זה לא תמיד טבלה. אז בואו אולי בשלב הזה כבר נשנה את זה ל-result.
כמו שהתחלנו לכתוב את זה, כי זו בעצם התוצאה שמוחזרת. זה יכול להיות טבלה, אבל זה לא חייב להיות טבלה. מה קורה במקרה הזה?
זה לא טבלה שמוחזרת, אלא זה אובייקט שאני אקרא לו info שמכיל אינפורמציה לגבי מה בעצם קרה בשאילתא. כאשר אנחנו פונקציית סלקט, סליחה, שאילתת סלקט, כן מוחזרת טבלה.
גם אם הסלקט הזאת מתארת רשומה בודדת. כאשר אנחנו שאילתת insert, update או delete, אז מה שמוחזר מ-execute async זה אובייקט המתאר מה בעצם מתרחש כרגע עם השאילתה עצמה.
ויש בו כל מיני נתונים, בואו פשוט נדפיס אותו על המסך: console.log, info, רק בכדי לראות מה בעצם מוצג לנו על המסך. ומה שאנחנו רוצים כרגע לעשות, בואו ניפטר רגע משלוש השורות האלה כי הן לא קשורות אלינו כרגע זה להחזיר את אותו מוצר פרודקט שקיבלנו מהיוזר.
שימו לב שכרגע לא יהיה לו את ה-ID ואנחנו כן רוצים להחזיר מוצר עם ID כבר נטפל בזה. הפונקציה get new ID הייתה רק בשביל לטפל