Connessione a MariaDB/MySQL in Fiber

Mattepuffo's logo
Connessione a MariaDB/MySQL in Fiber

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!


Condividi

Commentami!