Go

database/sql

database/sql, connections, queries, prepared statements, transactions, connection pooling

22 questions d'entretien·
Confirmé
1

Quelle est la différence principale entre DB.Query et DB.Exec ?

Réponse

DB.Query est utilisé pour exécuter des requêtes SELECT qui retournent des lignes de données, tandis que DB.Exec sert à exécuter des commandes SQL qui ne retournent pas de résultats (INSERT, UPDATE, DELETE). Query retourne un objet Rows qu'il faut parcourir et fermer avec rows.Close(), alors qu'Exec retourne un Result contenant le nombre de lignes affectées et le dernier ID inséré.

2

Pourquoi est-il important de fermer l'objet Rows après une requête ?

Réponse

Fermer Rows avec rows.Close() libère les ressources de la connexion database, permettant à la connexion de retourner dans le pool. Sans fermeture, les connexions restent occupées et le pool peut s'épuiser, causant des blocages. Il est recommandé d'utiliser defer rows.Close() immédiatement après avoir vérifié l'erreur de Query pour garantir la fermeture même en cas d'erreur ultérieure.

3

Quelle méthode utiliser pour récupérer une seule ligne de résultat ?

Réponse

DB.QueryRow est conçu spécifiquement pour récupérer une seule ligne et retourne un objet Row (au singulier). Contrairement à Query qui retourne Rows et nécessite une itération avec rows.Next(), QueryRow simplifie le code en permettant un scan direct. La gestion d'erreur se fait lors du Scan, où sql.ErrNoRows indique qu'aucune ligne n'a été trouvée.

4

Comment ouvrir une connexion à une base de données avec database/sql ?

5

Que retourne la méthode rows.Scan() ?

+19 questions d'entretien

Maîtrise Go pour ton prochain entretien

Accède à toutes les questions, flashcards, tests techniques, exercices de code review et simulateurs d'entretien.

Commencer gratuitement