Connessione a MariaDB/MySQL in Fiber
In questo articolo vediamo come connetterci ad un db MariaDB/MySQL in Fiber.
Nello specifico ho usato MariaDB, ma per MySQL dovrebbe essere uguale.
Cominciamo con l'installazione:
go get github.com/gofiber/fiber/v2
go get github.com/go-sql-driver/mysql
La tabella che interroghiamo (persone) ha solo due campi; inoltre faremo solo una query, giusto per fare un test veloce:
package main
import (
"database/sql"
"fmt"
"os"
_ "github.com/go-sql-driver/mysql"
"github.com/gofiber/fiber/v2"
)
var db *sql.DB
func main() {
var err error
dsn := "root:9211@tcp(127.0.0.1:3306)/test"
db, err = sql.Open("mysql", dsn)
if err != nil {
fmt.Println(err)
os.Exit(0)
}
if err = db.Ping(); err != nil {
fmt.Println(err)
os.Exit(0)
}
fmt.Println("Connesso a MariaDB!")
app := fiber.New()
app.Get("/persone", func(c *fiber.Ctx) error {
rows, err := db.Query("SELECT id, email FROM persone")
if err != nil {
return c.Status(500).SendString("Errore query: " + err.Error())
}
defer rows.Close()
type Persona struct {
ID int `json:"id"`
Email string `json:"email"`
}
var persone []Persona
for rows.Next() {
var p Persona
if err := rows.Scan(&p.ID, &p.Email); err != nil {
return c.Status(500).SendString("Errore nella lettura dei dati")
}
persone = append(persone, p)
}
return c.JSON(persone)
})
app.Listen(":3000")
}
Enjoy!
go fiber mysql mariadb
Commentami!