Go में डेटाबेस के साथ कार्य: शुरुआती लोगों के लिए PostgreSQL और MongoDB

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

परिचय: क्यों Go और डेटाबेस एक आदर्श जोड़ी हैं

\n

Go (Golang) एक आधुनिक कंपाइल की जाने वाली भाषा है, जिसे Google द्वारा बनाया गया है। इसके मुख्य लाभ हैं - उच्च प्रदर्शन, सरलता और अंतर्निहित समवर्ती समर्थन। जब डेटाबेस के साथ काम करने की बात आती है, तो Go किसी भी DBMS के लिए शक्तिशाली मानक लाइब्रेरी और लोकप्रिय तृतीय-पक्ष ड्राइवर प्रदान करता है।

\n

इस लेख में, हम दो सबसे लोकप्रिय डेटाबेस: रिलेशनल PostgreSQL और डॉक्यूमेंट-ओरिएंटेड MongoDB से कनेक्ट होने और बुनियादी संचालन करने का तरीका समझेंगे। यह सामग्री शुरुआती डेवलपर्स के लिए है जो Go सिंटैक्स की मूल बातों से पहले से परिचित हैं।

\n\n

1. वातावरण तैयार करना और ड्राइवर स्थापित करना

\n

कोड लिखने से पहले, सुनिश्चित करें कि आपके पास Go (संस्करण 1.21+) स्थापित है। डेटाबेस के साथ काम करने के लिए हमें ड्राइवरों की आवश्यकता होगी। उन्हें कमांड का उपयोग करके स्थापित करें:

\n
go get github.com/lib/pq          // PostgreSQL के लिए\ngo get go.mongodb.org/mongo-driver // MongoDB के लिए
\n

यह भी सुनिश्चित करें कि आपकी मशीन पर संबंधित डेटाबेस सर्वर चल रहे हों (स्थानीय रूप से या Docker के माध्यम से)।

\n\n

1.1. प्रोजेक्ट संरचना

\n

एक main.go फ़ाइल बनाएँ। सरलता के लिए सारा तर्क इसमें केंद्रित होगा। वास्तविक प्रोजेक्ट्स में कोड को पैकेजों में विभाजित करना चाहिए।

\n\n

2. Go में PostgreSQL के साथ कार्य

\n

PostgreSQL एक शक्तिशाली रिलेशनल DBMS है। Go में इसके साथ काम करने के लिए हम database/sql पैकेज और lib/pq ड्राइवर का उपयोग करते हैं।

\n\n

2.1. डेटाबेस से कनेक्शन

\n

हम एक कनेक्शन फ़ंक्शन बनाएंगे। कनेक्शन स्ट्रिंग (DSN) में होस्ट, पोर्ट, उपयोगकर्ता नाम और डेटाबेस शामिल होता है।

\n
package main\n\nimport (\n    "database/sql"\n    "fmt"\n    "log"\n\n    _ "github.com/lib/pq"\n)\n\nfunc main() {\n    connStr := "host=localhost port=5432 user=postgres password=secret dbname=testdb sslmode=disable"\n    db, err := sql.Open("postgres", connStr)\n    if err != nil {\n        log.Fatal("कनेक्शन त्रुटि:", err)\n    }\n    defer db.Close()\n\n    // कनेक्शन की जाँच करें\n    err = db.Ping()\n    if err != nil {\n        log.Fatal("कनेक्शन स्थापित करने में विफल:", err)\n    }\n    fmt.Println("PostgreSQL से सफलतापूर्वक जुड़ा!") \n}
\n

महत्वपूर्ण: sql.Open वास्तविक कनेक्शन नहीं बनाता, केवल एक पूल बनाता है। वास्तविक कनेक्शन पहले अनुरोध या Ping() कॉल पर होता है।

\n\n

2.2. तालिका बनाना और डेटा सम्मिलित करना

\n

अब हम users तालिका बनाएंगे और कुछ रिकॉर्ड जोड़ेंगे।

\n
// तालिका बनाना\ncreateTable := `\nCREATE TABLE IF NOT EXISTS users (\n    id SERIAL PRIMARY KEY,\n    name VARCHAR(100) NOT NULL,\n    email VARCHAR(100) UNIQUE NOT NULL,\n    age INT\n);`\n_, err = db.Exec(createTable)\nif err != nil {\n    log.Fatal("तालिका बनाने में त्रुटि:", err)\n}\n\n// डेटा सम्मिलित करना\ninsert := `INSERT INTO users (name, email, age) VALUES ($1, $2, $3)`\n_, err = db.Exec(insert, "इवान पेत्रोव", "ivan@example.com", 30)\nif err != nil {\n    log.Fatal("सम्मिलित करने में त्रुटि:", err)\n}\nfmt.Println("डेटा जोड़ा गया")
\n

प्लेसहोल्डर $1, $2 के उपयोग पर ध्यान दें - यह SQL इंजेक्शन से सुरक्षा है।

\n\n

2.3. डेटा पढ़ना और अपडेट करना

\n

हम एक चयन क्वेरी निष्पादित करेंगे और उपयोगकर्ता की आयु अपडेट करेंगे।

\n
// डेटा पढ़ना\nrows, err := db.Query("SELECT id, name, email, age FROM users")\nif err != nil {\n    log.Fatal(err)\n}\ndefer rows.Close()\n\nfor rows.Next() {\n    var id int\n    var name, email string\n    var age int\n    err := rows.Scan(&id, &name, &email, &age)\n    if err != nil {\n        log.Fatal(err)\n    }\n    fmt.Printf("ID: %d, नाम: %s, ईमेल: %s, आयु: %d\\n", id, name, email, age)\n}\n\n// अपडेट\n_, err = db.Exec("UPDATE users SET age = $1 WHERE name = $2", 31, "इवान पेत्रोव")\nif err != nil {\n    log.Fatal(err)\n}\nfmt.Println("आयु अपडेट की गई")
\n\n

3. MongoDB के साथ कार्य

ब्लॉग

पुस्तक अनुशंसाएँ