pgx Go: पूर्ण गाइड उदाहरणों के साथ

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

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

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

pgx का परिचय: Go के लिए शक्तिशाली PostgreSQL ड्राइवर

pgx (PostgreSQL eXtended) लाइब्रेरी Go प्रोग्रामिंग भाषा से PostgreSQL के साथ काम करने के लिए एक आधुनिक, उच्च-प्रदर्शन वाला ड्राइवर और टूल्स का सेट है। मानक database/sql पैकेज के विपरीत, pgx PostgreSQL प्रोटोकॉल तक सीधी पहुँच प्रदान करता है, जो प्रदर्शन में महत्वपूर्ण वृद्धि और LISTEN/NOTIFY, COPY प्रोटोकॉल, ऐरे और कम्पोजिट टाइप्स के साथ काम करने जैसी अनूठी सुविधाओं तक पहुँच देता है।

मानक database/sql के बजाय pgx का उपयोग क्यों करें? पहला, pgx अनावश्यक एब्स्ट्रैक्शन की कमी के कारण 30-50% तेज़ है। दूसरा, यह PostgreSQL 12+ (और नए संस्करणों) की सभी आधुनिक सुविधाओं का समर्थन करता है। तीसरा, pgx कनेक्शन, कनेक्शन पूल, प्रिपेयर्ड क्वेरी और ट्रांज़ैक्शन के लिए एक समृद्ध API प्रदान करता है। अंत में, pgx एक विशेष एडेप्टर के माध्यम से database/sql के साथ पूरी तरह से संगत है, जिससे आप इसे उन प्रोजेक्ट्स में उपयोग कर सकते हैं जहाँ पहले से मानक इंटरफ़ेस का उपयोग किया जा रहा है।

pgx इंस्टॉलेशन

Go प्रोजेक्ट में pgx इंस्टॉल करना मानक go get कमांड से किया जाता है। PostgreSQL के साथ काम करने के लिए आपको मुख्य pgx पैकेज और संभवतः अतिरिक्त मॉड्यूल इंस्टॉल करने होंगे:

# मुख्य pgx v5 पैकेज इंस्टॉल करें (अनुशंसित संस्करण)
go get github.com/jackc/pgx/v5

# कनेक्शन पूल के लिए पैकेज इंस्टॉल करें
go get github.com/jackc/pgx/v5/pgxpool

# database/sql के साथ संगतता के लिए एडेप्टर इंस्टॉल करें
go get github.com/jackc/pgx/v5/stdlib

इन कमांड को चलाने के बाद, आप अपनी Go फ़ाइलों में pgx को इम्पोर्ट कर सकते हैं। सुनिश्चित करें कि आपके पास Go संस्करण 1.18 या उससे ऊपर है, क्योंकि pgx v5 जेनेरिक्स का उपयोग करता है।

त्वरित शुरुआत: PostgreSQL से पहला कनेक्शन

चलिए एक सरल प्रोग्राम लिखते हैं जो PostgreSQL डेटाबेस से कनेक्ट होता है और एक क्वेरी चलाता है। मान लें कि आपका PostgreSQL localhost:5432 पर चल रहा है, डेटाबेस का नाम testdb है, उपयोगकर्ता testuser है और पासवर्ड testpass है।

package main

import (
    "context"
    "fmt"
    "log"
    "os"

    "github.com/jackc/pgx/v5"
)

func main() {
    // कनेक्शन स्ट्रिंग
    connStr := "postgres://testuser:testpass@localhost:5432/testdb"

    // कनेक्शन स्थापित करें
    conn, err := pgx.Connect(context.Background(), connStr)
    if err != nil {
        log.Fatalf("डेटाबेस से कनेक्ट नहीं हो सका: %v", err)
    }
    defer conn.Close(context.Background())

    // एक सरल क्वेरी चलाएं
    var greeting string
    err = conn.QueryRow(context.Background(), "SELECT 'Hello, PostgreSQL!'").Scan(&greeting)
    if err != nil {
        log.Fatalf("क्वेरी निष्पादित करने में त्रुटि: %v", err)
    }

    fmt.Println(greeting)
}

यह कोड कनेक्शन स्थापित करता है, एक क्वेरी चलाता है और परिणाम प्रिंट करता है। context.Background() के उपयोग पर ध्यान दें - यह Go में कॉन्टेक्स्ट पास करने का मानक तरीका है, जो टाइमआउट और ऑपरेशन को रद्द करने को नियंत्रित करने में मदद करता है।

pgx के मुख्य तरीके और फंक्शन

आइए pgx लाइब्रेरी के सबसे महत्वपूर्ण तरीकों और फंक्शन को देखें। प्रत्येक तरीके के लिए विवरण, पैरामीटर और एक कार्यशील कोड उदाहरण दिया गया है।

1. pgx.Connect — कनेक्शन स्थापित करना

यह क्या करता है: PostgreSQL के लिए एक नया कनेक्शन बनाता है। डेटाबेस के साथ काम शुरू करने का यह मुख्य तरीका है।

पैरामीटर:

  • ctx context.Context — कनेक्शन के जीवनकाल को प्रबंधित करने के लिए कॉन्टेक्स्ट
  • connString string — URI या DSN फॉर्मेट में कनेक्शन स्ट्रिंग

रिटर्न करता है: (*pgx.Conn, error)

उदाहरण:

conn, err := pgx.Connect(context.Background(), "postgres://user:pass@localhost:5432/mydb")
if err != nil {
    log.Fatal(err)
}
defer conn.Close(context.Background())

2. c

अनुशंसाएँ