GORM: Veritabanı İşlemlerini (ORM) Kolaylaştırma

  • Konbuyu başlatan Konbuyu başlatan irfo
  • Başlangıç tarihi Başlangıç tarihi

irfo

Moderatör
Top Poster Of Month
Katılım
7 Ocak 2026
Mesajlar
290
Tepkime puanı
2
Puanları
18

SQL Yazmadan Veritabanı Yönetimi​

Ham SQL sorguları (SELECT * FROM users...) yazmak hem hataya açıktır hem de veritabanı değiştiğinde kodu kırması kolaydır. GORM, Go struct'larınızı veritabanı tablolarına, struct alanlarınızı ise sütunlara otomatik eşler. Go dünyasının en popüler ORM kütüphanesidir.

Kurulum​

go get -u gorm.io/gormgo get -u gorm.io/driver/sqlite (Örnek için SQLite kullanacağız)

Model Tanımı ve AutoMigrate​

GORM'un en sevilen özelliği, struct'a bakarak veritabanı tablosunu otomatik oluşturmasıdır (gorm.Model içinde otomatik ID, CreatedAt, UpdatedAt, DeletedAt gelir).

Kod:
package main

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

// Veritabanı Modelitype User struct {gorm.Model         // ID, CreatedAt vb. otomatik eklerName      stringEmail     string   gorm:"unique" // Benzersiz sütunAge       int}

func main() {// 1. Bağlantı (Dosya tabanlı veritabanı)db, err := gorm.Open(sqlite.Open("test.db"), &gorm.Config{})if err != nil {panic("Veritabanına bağlanılamadı!")}

// 2. Tabloyu Oluştur (Migration)<br>// User struct'ına bakıp "users" tablosunu yaratır.<br>db.AutoMigrate(&amp;User{})<br><br>// 3. Kayıt Ekleme (Create)<br>db.Create(&amp;User{Name: "Gopher", Email: "[email protected]", Age: 10})<br><br>// 4. Kayıt Okuma (Read)<br>var user User<br>// İlk bulduğu kaydı user değişkenine atar<br>db.First(&amp;user, "name = ?", "Gopher") <br><br>fmt.Println("Kullanıcı Bulundu:", user.Name, user.ID)<br><br>// 5. Güncelleme (Update)<br>db.Model(&amp;user).Update("Age", 11)<br>
}

Sonuç​

GORM ile veritabanı bağımsız (Switchable) kod yazarsınız. Bugün SQLite ile çalışırken, yarın sadece driver satırını değiştirerek PostgreSQL veya MySQL'e geçebilirsiniz.
 
Geri
Üst