Postgres הוא אחד ממסדי הנתונים הפופולריים של SQL בשל תכונותיו הרבות וקלות השימוש. Postgres תואם ל-ACID עם תכונות כמו בקרת מקביליות מרובת גרסאות, שכפול אסינכרון, עסקאות מקוננות ורישום כתיבה קדימה. יחד עם רבות אחרות, תכונות אלה הופכות את Postgres למערכת ניהול מסדי הנתונים של SQL.
המערכת האקולוגית של Go היא ביתם של חבילות רבות לאינטראקציה עם DBMS שונים, כולל Postgres. Go מספקת את המובנה מסד נתונים/sql חבילה לעבודה עם מסדי נתונים של SQL באמצעות מנהלי התקנים של מסד נתונים. באמצעות מבני נתונים של Go, אתה יכול לשלב ORMs פופולריים של צד שלישי כמו GORM לאינטראקציה קלה עם מסד הנתונים שלך.
תחילת העבודה עם GORM ו-Postgres
חבילת GORM הוא אחד ה-ORMs הפופולריים ביותר במערכת האקולוגית של Go מכיוון שהוא ידידותי למפתחים, עשיר בתכונות ומתבסס על ה מסד נתונים/sql חֲבִילָה.
GORM מספק פונקציונליות עבור העברות אוטומטיות, רישום, הצהרות מוכנות, עסקאות ופיצול. החבילה נוקטת בגישה של קוד ראשון תוך שימוש במבנים וסוגי נתונים מובנים אחרים.
הפעל את פקודת הטרמינל הזו בספריית העבודה שלך כדי להוסיף את חבילת GORM לתלות של הפרויקט שלך:
ללכת קבל את gorm.io/gorm\n
תזדקק לדרייבר של מסד נתונים כדי לעבוד עם חבילת GORM. GORM מספק מנהלי התקנים של מסד נתונים עבור DBMS פופולרי. הפעל פקודה זו בספריית העבודה שלך כדי להתקין את ה-GORM Postgres נהג:
ללכת קבל את gorm.io/driver/postgres\n
חיבור Postgres עם Go באמצעות GORM
ייבא את החבילות האלה לקובץ ה-Go שלך כדי לעבוד עם ה-ORM ומנהל ההתקן של מסד הנתונים. אתה תשתמש ב- עֵץ חבילה לרישום שגיאות למסוף שלך ול- fmt חבילה להדפסת פלט.
יְבוּא (\n "fmt"\n "gorm.io/driver/postgres"\n "gorm.io/gorm"\n "עֵץ"\n)\n
תזדקק למחרוזת חיבור כדי להתחבר לשלך מסד נתונים Postgres בסביבת הריצה. אתה יכול להשתמש ב-struct כמודל לשדות המרכיבים את מחרוזת החיבור. שימוש ב-struct מקל על שינוי ובדיקת ערכים שונים, במיוחד במקרים של הזרקת תלות.
להלן מודל מבנה לדוגמה עבור השדות המרכיבים את מחרוזת החיבור:
סוּג Config struct {\n מארח חוּט\n יציאה חוּט\n סיסמה חוּט\n משתמש חוּט\n שם DB חוּט\n SSLMode חוּט\n}\n
להלן פונקציה אופיינית לחיבור מסד הנתונים שלך. זה מחזיר את מופע החיבור ושגיאה בהתאם למצב החיבור.
funcחיבור חדש()(*גורם. DB, שגיאה) {\n לַחֲזוֹר db, אֶפֶס\n}\n
אתה יכול ליצור מופע של מודל מבנה החיבור ולמלא את השדות בערכים במסד הנתונים של Postgres.
תצורות := Config{\n מארח: "מארח_בסיס הנתונים",\n יציאה: "יציאת_בסיס הנתונים",\n סיסמה: "בסיסמא_בסיסמא",\n משתמש: "משתמש_בסיס הנתונים",\n שם DB: "שם בסיס הנתונים",\n SSLMode: "שֶׁקֶר",\n }\n dsn := fmt. ספרינטף("host=%s port=%s user=%s password=%s dbname=%s sslmode=%s", תצורות. מארח, תצורות. נמל, תצורות. משתמש, תצורות. סיסמא, תצורות. שם DB, תצורות. SSLMode)\n
ה dsn המשתנה משתמש ב- ספרינטף שיטת עיצוב ו פעל לעיצוב מחרוזת לשרשור את השדות של ה Config לבנות ולהגדיר את מחרוזת החיבור של Postgres.
אתה יכול לפתוח חיבור למסד נתונים עם GORM באמצעות ה לִפְתוֹחַ שיטה. ה לִפְתוֹחַ השיטה לוקחת חיבור פתוח ממנהל התקן של מסד נתונים ורשימת תצורות אופציונליות מ- Config סוג חבילת GORM. הוא מחזיר מופע חיבור ושגיאה אופציונלית.
db, טעות := gorm. פתוח (postgres. פתח (dsn), &gorm. תצורה{})\n אם טעות != אֶפֶס {\n לַחֲזוֹר db, err\n }\n
פינג למסד הנתונים כדי לאמת את סטטוס החיבור
אתה יכול לעשות פינג למסד הנתונים שלך כדי לאמת את המצב התקין/מקוון באמצעות פונקציה שמחזירה תוצאה בוליאנית או שגיאה אם חיבור מסד הנתונים אינו חוקי.
funcPingDb()(bool, שגיאה) {\n \n לַחֲזוֹרנָכוֹן, אֶפֶס\n}\n
יהיה עליך ליצור מופע חיבור חדש כדי לעשות פינג למסד הנתונים. הנה דוגמה באמצעות חיבור חדש פונקציה ליצירת מופע חיבור:
connectionInstance, err := NewConnection()\n אם טעות != אֶפֶס {\n יומן. פאטלף("חיבור מסד הנתונים נכשל %v", טעות. Error())\n }\n
לאחר שהשגת מופע חיבור, צור מופע מסד נתונים עם DB שיטת החיבור.
dbConnection, err := connectionInstance. DB()\n אם טעות != אֶפֶס {\n לַחֲזוֹרשֶׁקֶר, err\n } \n
אתה יכול לעשות פינג למסד הנתונים באמצעות ה פינג שיטת מופע מסד הנתונים. ה פינג השיטה מחזירה שגיאות או אֶפֶס אם החיבור הצליח.
\n שגיאה = dbConnection. Ping()\n אם טעות != אֶפֶס {\n לַחֲזוֹרשֶׁקֶר, שגיאה\n } אַחֵר {\n \n fmt. Println("החיבור הצליח")\n }\n
ריצה מוצלחת אמורה להביא לפלט דומה לזה:
אתה יכול להשתמש בחבילת מסד הנתונים/sql כדי לעבוד עם מסד נתונים של SQL ב-Go
ה מסד נתונים/sql החבילה ניתנת להרחבה, ומכיוון שרוב חבילות מסד הנתונים והדרייברים של Go מרחיבים את החבילה, אתה יכול להשתמש בחבילה בפרויקטים שלך במקום לבחור ב-ORMs.
GORM מספקת גם בונה SQL לבניית SQL גולמי, שעוזר לפעולות שאינן נתמכות.