发布时间:2024-12-23 04:03:39
接下来,我们需要在Golang项目中引入第三方的MySQL驱动。目前,go-sql-driver/mysql是使用最广泛的MySQL驱动,具有稳定性和性能优势。可以通过以下命令进行安装:
go get -u github.com/go-sql-driver/mysql
import (
"database/sql"
_ "github.com/go-sql-driver/mysql"
)
func main() {
db, err := sql.Open("mysql", "user:password@tcp(localhost:3306)/database")
if err != nil {
panic(err.Error())
}
defer db.Close()
}
在代码中,我们使用sql.Open函数来打开与MySQL的连接。第一个参数指定驱动名称为mysql,第二个参数是连接字符串。如果连接成功,将返回一个db对象,我们可以通过这个对象进行后续的数据库操作。最后,通过defer语句来延迟关闭数据库连接,以确保在程序退出时能够正确释放资源。
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
err = rows.Scan(&id, &name)
if err != nil {
panic(err.Error())
}
fmt.Println(id, name)
}
在上述代码中,我们使用db.Query函数执行SQL查询语句,并将结果存储在rows对象中。然后,通过遍历rows对象来获取每一行的数据,并使用Scan函数将数据填充到相应的变量中。最后,我们将数据打印到控制台上。
_, err := db.Exec("INSERT INTO users (name) VALUES (?)", "John")
if err != nil {
panic(err.Error())
}
在这个例子中,我们使用db.Exec函数执行SQL插入语句。第一个参数是完整的SQL语句,其中?表示占位符,第二个参数是要插入的具体数值。通过这种方式,可以很方便地向数据库中插入新数据。
类似地,我们可以使用db.Exec函数执行更新操作:
_, err := db.Exec("UPDATE users SET name = ? WHERE id = ?", "John Doe", 1)
if err != nil {
panic(err.Error())
}
这里的SQL语句使用?作为占位符,然后通过后面的参数填充具体的数值。通过这种方式,我们可以轻松地更新数据库中的数据。