Connessione a MySQL e MariaDB in Go

Mattepuffo's logo
Connessione a MySQL e MariaDB in Go

Connessione a MySQL e MariaDB in Go

In Go abbiamo il package database/sql che ci fornisce una interfaccia generica per interagire con un database.

A questa interfaccia va fornito un driver apposito, che dipende dal db ovviamente; qui la lista di tutti i db supportati.

In questo articolo vediamo come connetterci ad db MySQL/MariaDB.

Useremo questo, che da quello che ho capito è il più usato.

Prima di tutto diamo questo comando:

$ go get -u github.com/go-sql-driver/mysql

Qui sotto un esempio di codice:

package main

import (
	"database/sql"
	"fmt"
	"log"

	_ "github.com/go-sql-driver/mysql"
)

type Canzone struct {
	canzone_titolo string
	canzone_autore string
	canzone_genere string
}

func main() {
	hostname := "
	dbUser := ""
	dbPassword := ""
	dbName := ""

	db, err := sql.Open("mysql", dbUser+":"+dbPassword+"@tcp("+hostname+":3306)/"+dbName)
	defer db.Close()

	if err != nil {
		log.Fatal(err)
	}

	res, err2 := db.Query("SELECT canzone_titolo, canzone_autore, canzone_genere FROM canzoni")

	if err2 != nil {
		log.Fatal(err2)
	}

	for res.Next() {
		var canzone Canzone
		err := res.Scan(&canzone.canzone_titolo, &canzone.canzone_autore, &canzone.canzone_genere)

		if err != nil {
			log.Fatal(err)
		}

		fmt.Printf("%vn", canzone)
	}
}

La struct rappresenta i campi della nostra tabella.

La mia tabella avrebbe più campi, ma per questo esempio ne ho visualizzati solo tre.

Enjoy!


Condividi

Commentami!