Golang ialah bahasa pengaturcaraan yang semakin popular yang cemerlang dalam mengendalikan sejumlah besar data dan prestasi serentak yang tinggi. Pada masa yang sama, MySQL, sebagai sistem pangkalan data hubungan yang popular, sangat serasi dengan Golang. Dalam artikel ini, kami akan meneroka cara untuk melaksanakan pertanyaan MySQL di Golang.
Sebelum menggunakan Golang untuk menanyakan MySQL, anda perlu memasang pemacu MySQL terlebih dahulu. Pemacu MySQL yang paling biasa digunakan di Golang ialah "mysql", yang boleh dipasang melalui arahan berikut:
go get -u github.com/go-sql-driver/mysql
Perintah ini akan memasang pemacu mysql dalam persekitaran Golang.
Sebelum melaksanakan pertanyaan MySQL, anda perlu mewujudkan sambungan dengan pangkalan data terlebih dahulu. Kod berikut boleh digunakan untuk mewujudkan sambungan ke pangkalan data MySQL:
import ( "database/sql" _ "github.com/go-sql-driver/mysql" ) func main() { db, err := sql.Open("mysql", "user:password@tcp(127.0.0.1:3306)/database") if err != nil { panic(err.Error()) } defer db.Close() }
Dalam kod di atas, kami menggunakan fungsi "sql.Open" untuk membuka pangkalan data MySQL dari Golang dengan parameter berikut:
Parameter kedua: Tentukan maklumat sambungan pangkalan data MySQL, formatnya ialah "nama pengguna: password@tcp(host :port)/database_name"
Selepas melaksanakan pertanyaan, anda perlu tutup sambungan melalui pernyataan "db.Close()".
Selepas mewujudkan sambungan, anda boleh menggunakan Golang untuk melaksanakan pertanyaan MySQL. Berikut ialah kod sampel mudah untuk melaksanakan pernyataan pertanyaan SELECT:
rows, err := db.Query("SELECT name, age FROM users WHERE age > ?", 20) if err != nil { panic(err.Error()) } defer rows.Close() for rows.Next() { var name string var age int err = rows.Scan(&name, &age) if err != nil { panic(err.Error()) } fmt.Println(name, age) }
Di Golang, melakukan INSERT, UPDATE, DELETE dan operasi lain pada asasnya sama seperti melakukan operasi SELECT. Berikut ialah kod sampel:
result, err := db.Exec("INSERT INTO users (name, age) VALUES (?, ?)", "John", 25) if err != nil { panic(err.Error()) } lastInsertId, _ := result.LastInsertId() rowsAffected, _ := result.RowsAffected() fmt.Printf("LastInsertId: %d, RowsAffected: %d ", lastInsertId, rowsAffected)
di Golang , anda boleh menggunakan pernyataan yang disediakan untuk melaksanakan pertanyaan MySQL. Penyata yang disediakan boleh meningkatkan prestasi pertanyaan kerana pelayan MySQL boleh menyimpan penyataan pertanyaan yang sama apabila melaksanakan berbilang penyataan pertanyaan yang sama, mengurangkan overhed menyusun penyata SQL. Berikut ialah contoh penggunaan pernyataan yang disediakan:
stmt, err := db.Prepare("SELECT name, age FROM users WHERE age > ?") if err != nil { panic(err.Error()) } defer stmt.Close() rows, err := stmt.Query(20) if err != nil { panic(err.Error()) } defer rows.Close() for rows.Next() { var name string var age int err = rows.Scan(&name, &age) if err != nil { panic(err.Error()) } fmt.Println(name, age) }
Keselamatan adalah sangat penting semasa membuat pertanyaan MySQL. Golang menyediakan beberapa amalan terbaik untuk menggunakan pertanyaan MySQL, termasuk:
Amalan terbaik ini boleh mengurangkan risiko serangan seperti suntikan SQL.
Kesimpulan
Dalam artikel ini, kami meneroka cara untuk melaksanakan pertanyaan MySQL di Golang. Selepas memahami kaedah sambungan asas dan sintaks, anda boleh menggunakan Golang untuk menanyakan pangkalan data MySQL dan menggunakan amalan terbaik untuk memastikan keselamatan pertanyaan. Apabila menggunakan Golang untuk pertanyaan MySQL, sentiasa ingat isu keselamatan.
Atas ialah kandungan terperinci golang mysql query. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!