Avatar ·

Méthode recommandée pour se connecter à MySQL depuis Go : drivers, pools de connexions et best practices

Bonjour à tous ! Je suis un développeur Go débutant, je viens de Python où tout était simple avec SQLAlchemy. Actuellement, j'écris une petite API REST en Go (net/http pur) et j'ai besoin de me connecter à MySQL.

J'ai lu plusieurs tutoriels, mais ils se contredisent. Certains utilisent go-sql-driver/mysql, d'autres database/sql directement, et certains recommandent un ORM comme GORM. Je suis complètement perdu.

Voici un exemple de mon code actuel que j'ai bricolé, mais il a l'air fait à la va-vite :

package main

import (
    "database/sql"
    "fmt"
    _ "github.com/go-sql-driver/mysql"
)

func main() {
    db, err := sql.Open("mysql", "user:password@tcp(127.0.0.1:3306)/dbname")
    if err != nil {
        panic(err.Error())
    }
    defer db.Close()

    // Ici je ne comprends pas : faut-il appeler db.Ping() ?
    // Faut-il configurer le pool de connexions ?
    // Comment gérer les erreurs correctement ?

    rows, err := db.Query("SELECT id, name FROM users")
    if err != nil {