Beberapa driver tersedia tetapi Anda hanya harus mempertimbangkan mereka yang mengimplementasikan database / sql API
- ini menyediakan sintaksis yang bersih dan efisien,
- itu memastikan Anda nantinya dapat mengubah driver tanpa mengubah kode Anda, selain impor dan koneksi.
Dua driver cepat dan andal tersedia untuk MySQL:
Saya telah menggunakan keduanya dalam produksi, program berjalan selama berbulan-bulan dengan nomor koneksi dalam jutaan tanpa kegagalan.
Pengandar basis data 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 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
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 bangun array 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})
}
Memasukkan :
_, err = con.Exec("insert into tbl (id, mdpr, isok) values (?, ?, 1)", id, mdpr)
Anda akan melihat bahwa bekerja di Go with 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 depan, Anda perlu menggunakan driver MySQL lain, Anda hanya perlu mengubah dua baris dalam satu file go: baris yang melakukan impor dan jalur yang membuka koneksi.