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!
go database sql mariadb mysql
Commentami!