MySQL ialah pangkalan data hubungan popular yang digunakan secara meluas dalam laman web dan aplikasi besar. Untuk pembangun bahasa Go, menggunakan MySQL untuk penyimpanan data adalah keperluan yang sangat biasa. Dalam artikel ini, kami akan meneroka cara menggunakan bahasa Go untuk sokongan teknikal pangkalan data MySQL yang mudah.
1. Pasang pemacu MySQL
Sebelum menggunakan bahasa Go untuk sokongan teknikal pangkalan data MySQL, kita perlu memasang pemacu MySQL terlebih dahulu. Pada masa ini, terdapat banyak pemacu MySQL yang disokong oleh bahasa Go, yang paling biasa digunakan ialah pemacu rasmi "go-sql-driver/mysql".
Kita boleh memasang "go-sql-driver/mysql" dalam baris arahan melalui arahan berikut:
go get -u “github.com/go-sql-driver/mysql”
2 Sambung ke pangkalan data MySQL
Sebelum menggunakan Pangkalan data MySQL, Kita perlu mewujudkan sambungan ke pangkalan data MySQL. Di bawah ialah contoh program mudah yang boleh mewujudkan sambungan ke pangkalan data MySQL:
package main import ( "database/sql" "fmt" "log" _ "github.com/go-sql-driver/mysql" ) func main() { db, err := sql.Open("mysql", "root:password@tcp(127.0.0.1:3306)/testdb") if err != nil { log.Fatal(err) } defer db.Close() err = db.Ping() if err != nil { log.Fatal(err) } fmt.Println("Successfully connected to database.") }
Dalam contoh ini, kami menggunakan fungsi "sql.Open()" untuk mewujudkan sambungan ke pangkalan data MySQL. Fungsi ini menerima dua parameter: parameter pertama menentukan jenis pemacu MySQL yang akan digunakan, dan parameter kedua ialah rentetan sambungan untuk pangkalan data MySQL. Rentetan sambungan termasuk nama pengguna, kata laluan, hos dan maklumat port, dan nama pangkalan data.
Sila ambil perhatian bahawa kami juga memanggil fungsi "db.Ping()" untuk menguji sama ada sambungan ke pangkalan data adalah sah. Jika sambungan tidak sah, ralat akan dilemparkan. Akhir sekali, kami menggunakan pernyataan "menangguhkan" untuk menutup sambungan ke pangkalan data.
3. Laksanakan pertanyaan MySQL
Melaksanakan pertanyaan MySQL dalam bahasa Go adalah sangat serupa dengan melaksanakan pertanyaan pangkalan data lain. Berikut ialah contoh pertanyaan:
package main import ( "database/sql" "fmt" "log" _ "github.com/go-sql-driver/mysql" ) func main() { db, err := sql.Open("mysql", "root:password@tcp(127.0.0.1:3306)/testdb") if err != nil { log.Fatal(err) } defer db.Close() rows, err := db.Query("SELECT id, name FROM users") if err != nil { log.Fatal(err) } defer rows.Close() for rows.Next() { var id int var name string err := rows.Scan(&id, &name) if err != nil { log.Fatal(err) } fmt.Printf("ID: %d, Name: %s ", id, name) } err = rows.Err() if err != nil { log.Fatal(err) } }
Dalam contoh ini, kami menggunakan fungsi "db.Query()" untuk melaksanakan pertanyaan MySQL. Pernyataan pertanyaan ialah "PILIH id, nama DARI pengguna", yang bermaksud untuk mendapatkan data lajur "id" dan "nama" daripada jadual "pengguna". Kami kemudian mengulangi set hasil menggunakan fungsi "rows.Next()" dan membaca data daripada set hasil menjadi pembolehubah menggunakan fungsi "rows.Scan()".
Selepas pertanyaan selesai, kami perlu menutup set hasil pertanyaan dan menyemak sama ada terdapat sebarang ralat. Jika ralat berlaku, di sini kami menggunakan pernyataan "menangguhkan" untuk menutup set hasil dan sambungan pangkalan data, mengelakkan keperluan untuk menutupnya secara eksplisit dalam kod.
4. Gunakan penyata tersusun
Pernyataan prapenyusun boleh meningkatkan prestasi pertanyaan MySQL dengan mengurangkan masa penyusunan yang mesti berlaku pada pelayan pangkalan data. Kita boleh membuat pernyataan yang disediakan yang termasuk senarai parameter yang berkaitan dengan pertanyaan dengan menggunakan fungsi "db.Prepare()".
Berikut ialah contoh menggunakan pertanyaan yang telah dikompilasi:
package main import ( "database/sql" "fmt" "log" _ "github.com/go-sql-driver/mysql" ) func main() { db, err := sql.Open("mysql", "root:password@tcp(127.0.0.1:3306)/testdb") if err != nil { log.Fatal(err) } defer db.Close() stmt, err := db.Prepare("SELECT id, name FROM users WHERE id > ?") if err != nil { log.Fatal(err) } defer stmt.Close() rows, err := stmt.Query(1) if err != nil { log.Fatal(err) } defer rows.Close() for rows.Next() { var id int var name string err := rows.Scan(&id, &name) if err != nil { log.Fatal(err) } fmt.Printf("ID: %d, Name: %s ", id, name) } err = rows.Err() if err != nil { log.Fatal(err) } }
Dalam contoh ini, kami mencipta pertanyaan yang telah dikompilasi menggunakan fungsi "db.Prepare()", di mana parameter ditentukan (" id >?"). Kami kemudian melaksanakan pertanyaan menggunakan fungsi "stmt.Query()" dan menghantar nilai parameter kepadanya. Kami kemudian mengulangi keputusan yang ditetapkan dengan cara yang sama seperti sebelumnya dan menutup pernyataan yang disediakan menggunakan "stmt.Close()".
Ringkasnya, menggunakan bahasa Go untuk sokongan teknikal pangkalan data MySQL boleh memudahkan kerja pembangunan. Dengan langkah sambungan yang mudah, anda boleh melaksanakan pertanyaan MySQL dengan mudah dan menggunakan penyata yang telah dikompilasi untuk pertanyaan berprestasi tinggi. Kami berharap artikel ini dapat memberi anda panduan berguna untuk memudahkan penggunaan bahasa Go untuk berinteraksi dengan pangkalan data MySQL dalam kerja harian anda.
Atas ialah kandungan terperinci Bagaimana untuk menggunakan bahasa Go untuk sokongan teknikal pangkalan data MySQL yang mudah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!