Adalah sangat mudah untuk menggunakan Golang untuk menulis program untuk mengendalikan pangkalan data, dan ini tidak terkecuali dalam pangkalan data MySQL. Berikut akan memperkenalkan kepada anda cara melaksanakan operasi MySQL di Golang.
Pertama, pastikan anda telah memasang Golang dan MySQL dengan betul, dan anda juga perlu memasang pemacu MySQL Go. Ini boleh dilakukan dengan mudah dengan arahan berikut:
go get -u github.com/go-sql-driver/mysql
Sebelum mencipta program Go, kita juga perlu mencipta pangkalan data MySQL dan jadual untuk menunjukkan kaedah menggunakan Golang untuk operasi pangkalan data.
Andaikan kami telah mencipta pangkalan data bernama "test_db" dan ia mengandungi jadual bernama "pengguna". Struktur jadual adalah seperti berikut:
CREATE TABLE IF NOT EXISTS `users` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(50) NOT NULL, `email` varchar(50) NOT NULL, `age` smallint(6) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
Seterusnya, kita boleh mula menulis program Golang. Berikut ialah contoh atur cara mudah yang menunjukkan cara menggunakan pemacu Golang untuk menyambung ke pangkalan data MySQL dan melaksanakan beberapa operasi pertanyaan asas:
package main import ( "database/sql" "fmt" _ "github.com/go-sql-driver/mysql" ) func main() { // 连接 MySQL 数据库 db, err := sql.Open("mysql", "username:password@tcp(127.0.0.1:3306)/test_db?charset=utf8mb4") if err != nil { panic(err.Error()) } defer db.Close() // 执行查询操作 rows, err := db.Query("SELECT * FROM users") if err != nil { panic(err.Error()) } defer rows.Close() // 遍历查询结果 for rows.Next() { var id int var name string var email string var age int err := rows.Scan(&id, &name, &email, &age) if err != nil { panic(err.Error()) } fmt.Println(id, name, email, age) } // 检查是否存在错误 err = rows.Err() if err != nil { panic(err.Error()) } }
Dengan menjalankan program di atas, kami berjaya menyambung ke pangkalan data MySQL dan gunakan pernyataan " PILIH" menanyakan semua rekod dalam jadual "pengguna" dan mencetak hasilnya.
Selain pertanyaan, kami juga boleh menggunakan pemacu Golang untuk melaksanakan operasi MySQL biasa yang lain seperti sisipan, kemas kini dan pemadaman. Berikut ialah contoh atur cara mudah:
package main import ( "database/sql" "fmt" _ "github.com/go-sql-driver/mysql" ) func main() { // 连接 MySQL 数据库 db, err := sql.Open("mysql", "username:password@tcp(127.0.0.1:3306)/test_db?charset=utf8mb4") if err != nil { panic(err.Error()) } defer db.Close() // 插入一条记录 stmt, err := db.Prepare("INSERT INTO users(name, email, age) VALUES(?, ?, ?)") if err != nil { panic(err.Error()) } defer stmt.Close() result, err := stmt.Exec("Tom", "tom@email.com", 30) if err != nil { panic(err.Error()) } lastInsertId, _ := result.LastInsertId() fmt.Println("新增记录的 ID:", lastInsertId) // 更新一条记录 stmt, err = db.Prepare("UPDATE users SET name=?, age=? WHERE id=?") if err != nil { panic(err.Error()) } defer stmt.Close() result, err = stmt.Exec("Jerry", 25, 1) if err != nil { panic(err.Error()) } affectRow, _ := result.RowsAffected() fmt.Println("受影响的行数:", affectRow) // 删除一条记录 stmt, err = db.Prepare("DELETE FROM users WHERE id=?") if err != nil { panic(err.Error()) } defer stmt.Close() result, err = stmt.Exec(1) if err != nil { panic(err.Error()) } affectRow, _ = result.RowsAffected() fmt.Println("受影响的行数:", affectRow) }
Dengan contoh atur cara di atas, kami berjaya melaksanakan operasi MySQL biasa seperti memasukkan, mengemas kini dan memadam.
Secara keseluruhannya, sangat mudah untuk melaksanakan operasi pangkalan data MySQL menggunakan pemacu Golang. Pelbagai operasi, seperti pertanyaan, sisip, kemas kini atau padam, boleh dilaksanakan dengan mudah melalui pemacu Golang.
Atas ialah kandungan terperinci Golang hanya melaksanakan mysql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!