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

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

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

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

GORM क्या है और इसकी आवश्यकता क्यों है?

GORM, Go भाषा के लिए एक शक्तिशाली और लोकप्रिय ORM (Object-Relational Mapping) लाइब्रेरी है। यह डेवलपर्स को रिलेशनल डेटाबेस (PostgreSQL, MySQL, SQLite, SQL Server आदि) के साथ ऑब्जेक्ट-ओरिएंटेड तरीके से इंटरैक्ट करने का सुविधाजनक तरीका प्रदान करती है।

GORM की आवश्यकता क्यों है?

  • CRUD ऑटोमेशन: GORM रिकॉर्ड बनाने, पढ़ने, अपडेट करने और हटाने के लिए टेम्पलेट SQL कोड लिखने का काम अपने हाथ में ले लेता है।
  • स्कीमा माइग्रेशन: आपकी Go स्ट्रक्चर के आधार पर डेटाबेस में टेबल को ऑटोमैटिक बनाने और अपडेट करने की सुविधा देता है।
  • टेबल के बीच संबंध: "एक-से-अनेक", "अनेक-से-अनेक" और "एक-से-एक" रिलेशनशिप को आसान बनाता है।
  • सुरक्षा: पैरामीटराइज्ड क्वेरी के माध्यम से SQL इंजेक्शन से बिल्ट-इन सुरक्षा प्रदान करता है।
  • प्रदर्शन: लेज़ी लोडिंग (Lazy Loading), ईगर लोडिंग (Eager Loading) और कैशिंग को सपोर्ट करता है।
  • समुदाय: विशाल समुदाय, अनेक प्लगइन और एक्सटेंशन उपलब्ध हैं।

GORM की स्थापना (इंस्टॉलेशन)

GORM को Go पैकेज के मानक तरीके से इंस्टॉल किया जाता है। सुनिश्चित करें कि आपके पास Go (वर्जन 1.18+) इंस्टॉल है।

go get -u gorm.io/gorm
go get -u gorm.io/driver/sqlite  # SQLite के लिए
go get -u gorm.io/driver/mysql   # MySQL के लिए
go get -u gorm.io/driver/postgres # PostgreSQL के लिए
go get -u gorm.io/driver/sqlserver # SQL Server के लिए

नोट: Python (pip) या Node.js (npm) के विपरीत, Go में कोई एकल पैकेज मैनेजर नहीं है। go get कमांड सोर्स कोड डाउनलोड करता है और इसे आपके प्रोजेक्ट में कंपाइल करता है।

कोड उदाहरण के साथ त्वरित शुरुआत

SQLite का उपयोग करके उपयोगकर्ताओं को प्रबंधित करने के लिए एक सरल एप्लिकेशन बनाते हैं।

package main

import (
    "fmt"
    "gorm.io/driver/sqlite"
    "gorm.io/gorm"
)

// User — डेटा मॉडल, जो डेटाबेस में टेबल के अनुरूप है
type User struct {
    ID    uint   `gorm:"primaryKey"`
    Name  string `gorm:"size:100;not null"`
    Email string `gorm:"uniqueIndex;size:255"`
    Age   int
}

func main() {
    // 1. डेटाबेस से कनेक्शन
    db, err := gorm.Open(sqlite.Open("test.db"), &gorm.Config{})
    if err != nil {
        panic("डेटाबेस से कनेक्ट करने में विफल")
    }

    // 2. ऑटोमाइग्रेशन — टेबल बनाना
    db.AutoMigrate(&User{})

    // 3. रिकॉर्ड बनाना (Create)
    user := User{Name: "राहुल शर्मा", Email: "rahul@example.com", Age: 30}
    result := db.Create(&user)
    if result.Error != nil {
        fmt.Println("बनाने में त्रुटि:", result.Error)
    }
    fmt.Printf("ID के साथ उपयोगकर्ता बनाया गया: %d\n", user.ID)

    // 4. रिकॉर्ड पढ़ना (Read)
    var readUser User
    db.First(&readUser, user.ID) // प्राथमिक कुंजी द्वारा खोज
    fmt.Printf("उपयोगकर्ता मिला: %+v\n", readUser)

    // 5. रिकॉर्ड अपडेट करना (Update)
    db.Model(&readUser).Update("Age", 31)
    fmt.Printf("अपडेट की गई उम्र: %d\n", readUser.Age)

    // 6. रिकॉर्ड हटाना (Delete)
    db.Delete(&readUser)
    fmt.Println("उपयोगकर्ता हटा दिया गया")
}

GORM के मुख्य तरीके/फंक्शन

1. gorm.Open(dialector, config)

क्या करता है: डेटाबेस से कनेक्शन स्थापित करता है। *gorm.DB का इंस्टेंस लौटाता है।

पैरामीटर:

  • dialector — डेटाबेस ड्राइवर (जैसे, sqlite.Open, mysql.Open, postgres.Open)।
  • config — GORM कॉन्फ़िगरेशन (gorm.Config)।

उदाहरण:

db, err := gorm.Open(mysql.Open("user:password@tcp(127.0.0.1:3306)/dbname?charset=utf8mb4&parseTime=True&loc=Local"), &gorm.Config{})

2. db.AutoMigrate(models ...interface{})

क्या करता है: दी गई स्ट्रक्चर के आधार पर डेटाबेस में टेबल को ऑटोमैटिक बनाता या अपडेट करता है। लापता कॉलम, इंडेक्स और सीमाएँ जोड़ता है।

अनुशंसाएँ