
Database/SQL
Kuasai akses database SQL di Go dengan package database/sql: koneksi, query, transaksi, prepared statements, dan pengelolaan connection pool.
1Apa perbedaan utama antara DB.Query dan DB.Exec?
Apa perbedaan utama antara DB.Query dan DB.Exec?
Jawaban
DB.Query digunakan untuk menjalankan kueri SELECT yang mengembalikan baris data, sedangkan DB.Exec digunakan untuk menjalankan perintah SQL yang tidak mengembalikan hasil (INSERT, UPDATE, DELETE). Query mengembalikan objek Rows yang harus diiterasi dan ditutup dengan rows.Close(), sementara Exec mengembalikan Result yang berisi jumlah baris yang terpengaruh dan ID terakhir yang dimasukkan.
2Mengapa penting untuk menutup objek Rows setelah sebuah kueri?
Mengapa penting untuk menutup objek Rows setelah sebuah kueri?
Jawaban
Menutup Rows dengan rows.Close() melepaskan sumber daya koneksi database, sehingga koneksi dapat kembali ke pool. Tanpa menutupnya, koneksi tetap sibuk dan pool dapat habis, menyebabkan pemblokiran. Disarankan menggunakan defer rows.Close() segera setelah memeriksa error dari Query untuk menjamin penutupan bahkan jika terjadi error berikutnya.
3Metode mana yang harus digunakan untuk mengambil satu baris hasil?
Metode mana yang harus digunakan untuk mengambil satu baris hasil?
Jawaban
DB.QueryRow dirancang khusus untuk mengambil satu baris dan mengembalikan objek Row (tunggal). Berbeda dengan Query yang mengembalikan Rows dan memerlukan iterasi dengan rows.Next(), QueryRow menyederhanakan kode dengan memungkinkan scan langsung. Penanganan error terjadi selama Scan, di mana sql.ErrNoRows menunjukkan bahwa tidak ada baris yang ditemukan.
Bagaimana cara membuka koneksi ke database dengan database/sql?
Apa yang dikembalikan oleh metode rows.Scan()?
+19 pertanyaan wawancara
Topik wawancara Go lainnya
Dasar-Dasar Go
Struktur Data Go
Interface Go
Penanganan Error
Dasar-Dasar Goroutine
Channels
Go Modules
Server HTTP
Klien HTTP
Enkoding JSON
Paket context
Testing
Pola Concurrency
Primitif Sinkronisasi
Framework web Go
Desain API REST
gRPC
Reflection
Manajemen Memori
Optimasi Performa
Generics
Go Design Patterns
Microservices
Keamanan dan Autentikasi
Docker & Containerization
Kubernetes Basics
Go Tingkat Lanjut
Pengembangan CLI
Kuasai Go untuk wawancara berikutnya
Akses semua pertanyaan, flashcards, tes teknis, latihan code review dan simulator wawancara.
Mulai gratis