- 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(&User{})<br><br>// 3. Kayıt Ekleme (Create)<br>db.Create(&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(&user, "name = ?", "Gopher") <br><br>fmt.Println("Kullanıcı Bulundu:", user.Name, user.ID)<br><br>// 5. Güncelleme (Update)<br>db.Model(&user).Update("Age", 11)<br>
}