sql >> Database >  >> RDS >> Mysql

Wat is de aanbevolen manier om vanuit Go verbinding te maken met MySQL?

Er zijn een paar stuurprogramma's beschikbaar, maar u moet alleen die stuurprogramma's overwegen die de database/sql implementeren API als

  • het biedt een schone en efficiënte syntaxis,
  • het zorgt ervoor dat u het stuurprogramma later kunt wijzigen zonder uw code te wijzigen, behalve de import en verbinding.

Er zijn twee snelle en betrouwbare stuurprogramma's beschikbaar voor MySQL:

Ik heb ze allebei in productie gebruikt, programma's draaien al maanden met verbindingsnummers in de miljoenen zonder problemen.

Andere SQL-databasestuurprogramma's worden vermeld op go-wiki .

Importeren bij gebruik van MyMySQL :

import (
    "database/sql"
    _ "github.com/ziutek/mymysql/godrv"
)

Importeren bij gebruik van Go-MySQL-Driver:

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

Verbinden en afsluiten met MyMySQL :

con, err := sql.Open("mymysql", database+"/"+user+"/"+password)
defer con.Close()
// here you can use the connection, it will be closed when function returns

Verbinden en afsluiten met Go-MySQL-Driver :

con, err := sql.Open("mysql", store.user+":"+store.password+"@/"+store.database)
defer con.Close()

Selecteer één rij :

row := con.QueryRow("select mdpr, x, y, z from sometable where id=?", id)
cb := new(SomeThing)
err := row.Scan(&cb.Mdpr, &cb.X, &cb.Y, &cb.Z)

Selecteer meerdere rijen en bouw een array met resultaten:

rows, err := con.Query("select a, b from item where p1=? and p2=?", p1, p2)
if err != nil { /* error handling */}
items := make([]*SomeStruct, 0, 10)
var ida, idb uint
for rows.Next() {
    err = rows.Scan(&ida, &idb)
    if err != nil { /* error handling */}
    items = append(items, &SomeStruct{ida, idb})
}

Invoegen:

_, err = con.Exec("insert into tbl (id, mdpr, isok) values (?, ?, 1)", id, mdpr)

Je zult zien dat werken in Go met MySQL een heerlijke ervaring is:ik nooit een probleem had, draaien mijn servers maandenlang zonder fouten of lekken. Het feit dat de meeste functies gewoon een variabel aantal argumenten gebruiken, verlicht een taak die in veel talen vervelend is.

Merk op dat als u in de toekomst een ander MySQL-stuurprogramma moet gebruiken, u slechts twee regels in één keer hoeft te wijzigen:de regel die de import doet en de regel die de verbinding opent.



  1. Hoe MAKE_SET() werkt in MariaDB

  2. Willekeurig getal genereren in elke rij in Oracle Query

  3. MySQL BESTELLEN OP IN()

  4. Code om SQL-scripts te valideren