
Database/SQL
database/sql paketiyle Go'da SQL veritabanı erişiminde ustalaşın: bağlantılar, sorgular, transaction'lar, prepared statement'lar ve connection pool yönetimi.
1DB.Query ile DB.Exec arasındaki temel fark nedir?
DB.Query ile DB.Exec arasındaki temel fark nedir?
Cevap
DB.Query, veri satırları döndüren SELECT sorgularını çalıştırmak için kullanılırken, DB.Exec sonuç döndürmeyen SQL komutlarını (INSERT, UPDATE, DELETE) çalıştırmak içindir. Query, üzerinde yineleme yapılması ve rows.Close() ile kapatılması gereken bir Rows nesnesi döndürür; Exec ise etkilenen satır sayısını ve son eklenen ID'yi içeren bir Result döndürür.
2Bir sorgudan sonra Rows nesnesini kapatmak neden önemlidir?
Bir sorgudan sonra Rows nesnesini kapatmak neden önemlidir?
Cevap
Rows'u rows.Close() ile kapatmak, database bağlantısının kaynaklarını serbest bırakır ve bağlantının pool'a geri dönmesini sağlar. Kapatılmazsa bağlantılar meşgul kalır ve pool tükenebilir, bu da tıkanmalara yol açar. Sonradan bir hata oluşsa bile kapatmayı garanti etmek için Query hatasını kontrol ettikten hemen sonra defer rows.Close() kullanılması önerilir.
3Tek bir sonuç satırını almak için hangi yöntem kullanılmalıdır?
Tek bir sonuç satırını almak için hangi yöntem kullanılmalıdır?
Cevap
DB.QueryRow özellikle tek bir satırı almak için tasarlanmıştır ve bir Row nesnesi (tekil) döndürür. Rows döndüren ve rows.Next() ile yineleme gerektiren Query'nin aksine, QueryRow doğrudan scan yapmaya izin vererek kodu basitleştirir. Hata işleme Scan sırasında gerçekleşir; burada sql.ErrNoRows hiçbir satır bulunamadığını gösterir.
database/sql ile bir veritabanına bağlantı nasıl açılır?
rows.Scan() yöntemi ne döndürür?
+19 mülakat soruları
Diğer Go mülakat konuları
Go Temelleri
Go Veri Yapıları
Go Arayüzleri
Hata Yönetimi
Goroutine Temelleri
Channels
Go Modules
HTTP Sunucusu
HTTP İstemcisi
JSON Kodlama
context Paketi
Testing
Eşzamanlılık Desenleri
Senkronizasyon İlkelleri
Go Web Framework'leri
REST API Tasarımı
gRPC
Reflection
Bellek Yönetimi
Performans Optimizasyonu
Generics
Go Design Patterns
Microservices
Güvenlik ve Kimlik Doğrulama
Docker & Containerization
Kubernetes Basics
İleri Düzey Go
CLI Geliştirme
Bir sonraki mülakatın için Go'de uzmanlaş
Tüm sorulara, flashcards'a, teknik testlere, code review alıştırmalarına ve mülakat simülatörlerine eriş.
Ücretsiz başla