Beberapa driver tersedia tetapi Anda sebaiknya hanya mempertimbangkan driver yang mengimplementasikan database/sql API sebagai
- menyediakan sintaks yang bersih dan efisien,
- memastikan Anda nanti dapat mengubah driver tanpa mengubah kode Anda, selain impor dan koneksi.
Tersedia dua driver yang cepat dan andal untuk MySQL :
Saya telah menggunakan keduanya dalam produksi, program berjalan selama berbulan-bulan dengan jumlah koneksi jutaan tanpa kegagalan.
Driver database SQL lainnya terdaftar di go-wiki .
Impor saat menggunakan MyMySQL :
import (
"database/sql"
_ "github.com/ziutek/mymysql/godrv"
)
Impor saat menggunakan Go-MySQL-Driver :
import (
"database/sql"
_ "github.com/go-sql-driver/mysql"
)
Menghubungkan dan menutup menggunakan MySQL :
con, err := sql.Open("mymysql", database+"/"+user+"/"+password)
defer con.Close()
// here you can use the connection, it will be closed when function returns
Menghubungkan dan menutup menggunakan Go-MySQL-Driver :
con, err := sql.Open("mysql", store.user+":"+store.password+"@/"+store.database)
defer con.Close()
Pilih satu baris :
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)
Pilih beberapa baris dan buat larik dengan hasil :
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})
}
Sisipkan :
_, err = con.Exec("insert into tbl (id, mdpr, isok) values (?, ?, 1)", id, mdpr)
Anda akan melihat bahwa bekerja di Go dengan MySQL adalah pengalaman yang menyenangkan :Saya tidak pernah punya masalah, server saya berjalan selama berbulan-bulan tanpa kesalahan atau kebocoran. Fakta bahwa sebagian besar fungsi hanya mengambil sejumlah variabel argumen meringankan tugas yang membosankan dalam banyak bahasa.
Perhatikan bahwa jika, di masa mendatang, Anda perlu menggunakan driver MySQL lain, Anda hanya perlu mengubah dua baris dalam satu file:baris yang melakukan impor dan baris yang membuka koneksi.