PracticU

הוספת מוצר חדש ל-MySQL

בלי כתוביותעם כתוביות
PracticU › קורס NodeJS › הוספת מוצר חדש ל-MySQL
מילון מושגים:
MySQL - מערכת ניהול מסדי נתונים יחסיים בקוד פתוח, נפוצה מאוד באתרים וביישומי אינטרנט.
טבלה - מבנה במסד נתונים שמאחסן נתונים בשורות ועמודות. כל שורה היא רשומה וכל עמודה היא שדה.
קונטרולר - רכיב שמתווך בין הממשק לבין הלוגיקה והנתונים, מקבל בקשות ומחליט כיצד לטפל בהן (למשל בדפוס MVC).
שאילתה - בקשה למסד נתונים לשלוף, להוסיף, לעדכן או למחוק נתונים, לרוב בשפת SQL.
רשומה - שורה בטבלת מסד נתונים שמרכזת את כל השדות של פריט אחד, למשל כל הפרטים של לקוח יחיד.
עמודה - שדה בטבלת מסד נתונים שמחזיק ערך מסוג מסוים עבור כל שורה, למשל שם או תאריך.
DELETE - פקודת SQL למחיקת שורות מטבלה. גם שיטת HTTP לבקשת מחיקה של משאב בשרת.
Postman - כלי לבדיקת API: שליחת בקשות HTTP לשרת ובחינת התגובות, נפוץ בפיתוח ובבדיקות.

הוספת מוצר חדש ל-MySQL
בשיעור הזה מוסיפים מוצר חדש לטבלה ב-MySQL, ומחזירים ללקוח את המוצר כולל המזהה החדש שמסד הנתונים נתן לו.
השלבים העיקריים
1. בניית המוצר בקונטרולר: הפונקציה יוצרת אובייקט מוצר בלי מזהה, עם השם, המחיר והמלאי שנשלחו מהלקוח, ובודקת אותו בעזרת Joi. אם הבדיקה עברה, היא קוראת ל-AddProductAsync.
2. פקודת INSERT: השאילתה מוסיפה רשומה לטבלה products ומציינת את העמודות product name, unit price ו-units in stock. ערך טקסטואלי חייב להיות בגרשיים בתוך השאילתה, וערך מספרי לא.
3. תוצאה מסוג info: בפקודות INSERT, UPDATE ו-DELETE execute לא מחזיר טבלה, אלא אובייקט שמתאר מה קרה, כולל מספר השורות שהושפעו והמזהה שנוצר.
4. החזרת המזהה: ה-insertId שמסד הנתונים מחזיר נכנס לשדה ה-ID של המוצר, והמוצר המלא חוזר ללקוח.
שימו לב
שמות השדות רגישים לאותיות גדולות וקטנות, ולכן insertId חייב להיכתב בדיוק כפי שהוא מופיע בתשובה.
בדיקה ב-Postman
הוספת שני מוצרים לדוגמה הצליחה, וכל אחד קיבל מזהה חדש. המוצרים נראו בטבלה עם המחיר והמלאי שנשלחו.
בסוף השיעור המוצר נשמר במסד הנתונים ומוחזר עם המזהה שלו.
השיעור הבא בקורס: עדכון מלא של מוצר ב-MySQL

פרקי ההרצאה: הוספת מוצר חדש ל-MySQL

  1. 00:00

    הקונטרולר שיוצר מוצר חדש

  2. 00:40

    קריאה ל-AddProductAsync והחזרת המוצר

  3. 01:16

    שאילתת INSERT עם שמות העמודות

  4. 01:53

    מחרוזות בגרשיים ומספרים בלי גרשיים

  5. 03:12

    הרצת INSERT וקבלת אובייקט מידע

  6. 03:50

    תוצאת INSERT היא אובייקט מידע

  7. 04:51

    החזרת המוצר עם מזהה חדש

תמלול ההרצאה: הוספת מוצר חדש ל-MySQL

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

  1. 00:02

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

  2. 00:17

    הנה הפונקציה בקונטרולר, מה שהיא מבצעת זה יוצרת כאן אובייקט מהמודל שלנו, בלי ID, לא קיבלנו ID, יש לו את ה-BodyName, Price ו-Stock שקיבלנו מהלקוח, ויש לנו כאן את הבדיקה של ג'וי מבחינת ולידציה.

  3. 00:40

    אם הבדיקה עברה בהצלחה אנחנו קוראים לפונקציה AddProductAsync ושולחים את האובייקט הזה שיש לו name, price ו-stock בתוכו ואנחנו רוצים להוסיף אותם.

  4. 00:53

    קיבלנו בחזרה, אנחנו פה מקבלים בחזרה מהביזנס לוג'יק את המוצר כולל ה-ID ומחזירים אותו לקליינט. מה אנחנו עושים בפונקציה AddProductAsync? דבר ראשון נייצר שאילתת sql בואו נייצר אותה כמובן עם סטרינג אינטרפוליישן ויש לנו פה פקודת אינסרט שלמדנו.

  5. 01:16

    into products לתוך המידע שאנחנו רוצים להוסיף הוא רק product name unit price units in stocks שימו לב שזה השמות שחייבים להיות בדאטאבייס זה מה שהדאטאבייס מכיר ואז values ומה המידע שאנחנו רוצים להוסיף.

  6. 01:42

    אז אם אנחנו רוצים להוסיף את החבר'ה האלה אז אנחנו צריכים להבין שsql חייבת להגיע בגרש גרש אם אנחנו רוצים לתאר לה מכרוזת. זאת אומרת שהמכרוזת שמגיעה מפה מהשם של המוצר זה המכרוזת בואו נשלב אותה product.name אנחנו לא יכולים לכתוב את זה בצורה כזאת כי אם נכתוב את זה בצורה כזאת אז זה כמובן תהיה שגיאה מבחינת שפת sql אם

  7. 02:21

    אנחנו רוצים לתת לשפת sql מידע מכרוזתי אז מבחינת השפה עצמה הוא חייב להיות בגרש גרש אם המידע שלנו הוא מידע מספרי כמו לדוגמה הפרייס או הסטוק אז אנחנו לא צריכים לעטוף אותו בגרש גרש בואו ניתן לו את product.price ו-seek ונשרשר לתוכו גם, נשתול לתוכו את product.stock זה בעצם המידע שמגיע מכאן מהאובייקט product שזה האובייקט של המודל שלנו.

  8. 02:59

    אז הנה יש לנו פה את השאילתא עצמה שמתארת בדיוק הוספה של המוצר שקיבלנו. מה אנחנו עושים איתה? אנחנו רוצים לגשת לדל נקודה ולקרוא ל-execute async ולתת את ה-sql.

  9. 03:22

    עכשיו הפונקציה execute async היא בעצם לא תחזיר לנו טבלה במקרה הזה. האמת שעכשיו אני רואה שאם היא לא מחזירה לנו במקרה הזה טבלה זה לא תמיד טבלה. אז בואו אולי בשלב הזה כבר נשנה את זה ל-result.

  10. 03:46

    כמו שהתחלנו לכתוב את זה, כי זו בעצם התוצאה שמוחזרת. זה יכול להיות טבלה, אבל זה לא חייב להיות טבלה. מה קורה במקרה הזה?

  11. 03:56

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

  12. 04:20

    גם אם הסלקט הזאת מתארת רשומה בודדת. כאשר אנחנו שאילתת insert, update או delete, אז מה שמוחזר מ-execute async זה אובייקט המתאר מה בעצם מתרחש כרגע עם השאילתה עצמה.

  13. 04:37

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

  14. 05:03

    שימו לב שכרגע לא יהיה לו את ה-ID ואנחנו כן רוצים להחזיר מוצר עם ID כבר נטפל בזה. הפונקציה get new ID הייתה רק בשביל לטפל

לקורס המלא: קורס NodeJS אונליין בעברית

ההרצאה הקודמת: שליפת מוצר בודד מתוך MySQL

ההרצאה הבאה: עדכון מלא של מוצר ב-MySQL

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

  • הוספת דומיין חדש - ל-AZURE
  • הוספת נתון חדש למסד נתונים
  • הרצאה על Azure MySQL
  • התקנה של mysql

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

  • קורס יסודות HTML - בניית אתר אינטרנט פשוט
  • קורס CSS 3 - בדגש על Flex & Grid
  • קורס Javascript כולל JQuery
  • קורס ג'אווה סקריפט מעשי - JavaScript
  • קורס TypeScript
  • קורס ריאקט - React