sqlx: Yapı Tarama ve Adlandırılmış Sorgular
sqlx ile Get, Select ve NamedExec
sqlx: Yapı Tarama ve Adlandırılmış Sorgular, CoddyKit'te ücretsiz bir Go Academy dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Go Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Go Academy kursu toplamda 4 dersten oluşur.
sqlx nedir?
github.com/jmoiron/sqlx, yapı tarama, adlandırılmış sorgular ve sorgu içi bağlama özellikleriyle database/sql'i genişletir. database/sql ile API uyumludur.
sqlx.Open
sql yerine sqlx kullanarak bir veritabanı bağlantısı açın:
db, err := sqlx.Open("postgres", dsn)
if err != nil { log.Fatal(err) }Get ve Select
db.Get, tek bir satırı bir yapıya tarar; db.Select ise birden çok satırı bir dilime tarar:
var user User
db.GetContext(ctx, &user, "SELECT * FROM users WHERE id=$1", id)
var users []User
db.SelectContext(ctx, &users, "SELECT * FROM users WHERE active=$1", true)Yapı etiketleri
sqlx, sütunları db etiketini kullanarak yapı alanlarıyla eşler:
type User struct {
ID int `db:"id"`
Name string `db:"name"`
Email string `db:"email"`
}Adlandırılmış sorgular
:name söz dizimiyle adlandırılmış parametreler kullanın ve bir yapı veya eşleme aktarın:
query := "INSERT INTO users (name, email) VALUES (:name, :email)"
_, err := db.NamedExecContext(ctx, query, user)sqlx.In
sqlx.In, bir dilimi SQL IN yan tümcesine genişletir:
ids := []int{1, 2, 3}
query, args, _ := sqlx.In("SELECT * FROM users WHERE id IN (?)", ids)
query = db.Rebind(query)
db.SelectContext(ctx, &users, query, args...)Rebind
db.Rebind(query), ? yer tutucularını (sqlx.In tarafından kullanılır) sürücüye özgü biçime dönüştürür ($1, $2 PostgreSQL içindir):
StructScan
rows.StructScan kullanarak tek bir satırı bir yapıya tarayın:
rows, _ := db.QueryxContext(ctx, "SELECT * FROM users")
for rows.Next() {
var u User
rows.StructScan(&u)
}MustExec
db.MustExec bir sorguyu yürütür ve hata oluştuğunda panik oluşturur; hataların her zaman kritik olduğu şema geçişleri veya sınama kurulumu için kullanışlıdır.
db.MustExec(schema)Unsafe
db.Unsafe(), hata döndürmek yerine eşlenmemiş sütunları sessizce yok sayan bir sürüm döndürür; SELECT, yapının sahip olduğundan daha fazla sütun döndürdüğünde kullanışlıdır.
sqlx ile ORM karşılaştırması
sqlx, Go'ya özgü yapı bağlamasıyla SQL üzerinde tam denetim sağlar. GORM gibi ORM'ler SQL'i gizler, ancak beklenmedik sorgular oluşturabilir. Açık SQL'i kolay taramayla birlikte istediğinizde sqlx kullanın.
Hızlı Kontrol
sqlx içinde db.SelectContext ne yapar?
Özet: sqlx
Temel noktalar:
- Get/Select, db etiketlerini kullanarak doğrudan yapılara tarama yapar
- :name söz dizimi ve NamedExecContext ile adlandırılmış sorgular
- Dilimlerle IN yan tümcesi için sqlx.In + Rebind
- Döngülerde satır başına yapı taraması için StructScan
Sıkça Sorulan Sorular
“sqlx: Yapı Tarama ve Adlandırılmış Sorgular” dersi ücretsiz mi?
Evet — “sqlx: Yapı Tarama ve Adlandırılmış Sorgular” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Go Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Go Academy kursu toplamda 4 dersten oluşur.
“sqlx: Yapı Tarama ve Adlandırılmış Sorgular” dersinde ne öğreneceğim?
sqlx ile Get, Select ve NamedExec Go Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Go Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Go Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.
“sqlx: Yapı Tarama ve Adlandırılmış Sorgular” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Go Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Go Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- database/sql ve Sürücüler
- sqlx: Yapı Tarama ve Adlandırılmış Sorgular
- pgx: Yüksek Performanslı PostgreSQL Sürücüsü
- İşlemler ve Geçişler