Oggi vediamo come utilizzare mysql con il linguaggio go prima di tutto scarichiamo la libreria che ci aiuterà a sviluppare la nostra applicazione.
Installazione:
1 |
go get github.com/go-sql-driver/mysql |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
La nostra applicazione: package main //Importo librerie import ( "database/sql" "fmt" _ "github.com/go-sql-driver/mysql" ) func main() { //Connessione al nostro database // User = root : Password = ''@nome database db, err := sql.Open("mysql", "root:@/test") //Controllo se da errori if err != nil { panic(err.Error()) } defer db.Close() // Eseguo la query del select rows, err := db.Query("SELECT * FROM test") if err != nil { panic(err.Error()) } // Prendo i nomi delle colonne columns, err := rows.Columns() //Controllo se da errori if err != nil { panic(err.Error()) } //Creo uno slice dei valori values := make([]sql.RawBytes, len(columns)) //rows.Scan a bisogno di una interfaccia come argomento quindi creamo una interfaccia //e lo settiamo con i valori dello slice precedetemente creato. scanArgs := make([]interface{}, len(values)) for i := range values { scanArgs[i] = &values[i] } fmt.Println("-----------------------------------") // Recupero le righe for rows.Next() { // Prendo i dati err = rows.Scan(scanArgs...) if err != nil { panic(err.Error()) // In } //Prendo i dati e li stampo var value string for i, col := range values { // controllo se il valore e nullo if col == nil { value = "NULL" } else { value = string(col) } fmt.Println(columns[i], ": ", value) } fmt.Println("-----------------------------------") } } |