Birkaç sürücü mevcuttur, ancak yalnızca veritabanı / sql API'sini uygulayanları
- temiz ve verimli bir sözdizimi sağlar,
- daha sonra içe aktarma ve bağlantı dışında kodunuzu değiştirmeden sürücüyü değiştirmenizi sağlar.
MySQL için iki hızlı ve güvenilir sürücü mevcuttur:
Her ikisini de üretimde kullandım, programlar milyonlarca bağlantı numarasıyla aylarca sorunsuz çalışıyor.
Diğer SQL veritabanı sürücüleri go-wiki'de listelenir .
MyMySQL kullanırken içe aktar:
import (
"database/sql"
_ "github.com/ziutek/mymysql/godrv"
)
Go-MySQL-Driver kullanırken içe aktarın:
import (
"database/sql"
_ "github.com/go-sql-driver/mysql"
)
MyMySQL kullanarak bağlanma ve kapatma:
con, err := sql.Open("mymysql", database+"/"+user+"/"+password)
defer con.Close()
// here you can use the connection, it will be closed when function returns
Go-MySQL-Driver kullanarak bağlanma ve kapatma:
con, err := sql.Open("mysql", store.user+":"+store.password+"@/"+store.database)
defer con.Close()
Bir satır seçin:
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)
Birden çok satır seçin ve sonuçları içeren bir dizi oluşturun:
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})
}
Ekle:
_, err = con.Exec("insert into tbl (id, mdpr, isok) values (?, ?, 1)", id, mdpr)
Go with MySQL ile çalışmanın keyifli bir deneyim olduğunu göreceksiniz: Hiç sorun yaşamadım, sunucularım aylarca hatasız veya sızıntısız çalışıyor. Çoğu fonksiyonun değişken sayıda argüman alması birçok dilde sıkıcı bir görevi hafifletir.
Gelecekte başka bir MySQL sürücüsü kullanmanız gerekiyorsa, tek bir dosyada iki satırı değiştirmeniz gerekecektir: içe aktarmayı yapan satır ve bağlantıyı açan satır.