Go

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.

22 mülakat soruları·
Mid-Level
1

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.

2

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.

3

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.

4

database/sql ile bir veritabanına bağlantı nasıl açılır?

5

rows.Scan() yöntemi ne döndürür?

+19 mülakat soruları

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