package main
import (
"database/sql"
"fmt"
"log"
_ "github.com/go-sql-driver/mysql"
)
func main() {
// 连接数据库
db, err := sql.Open("mysql", "username:password@tcp(localhost:3306)/dbname")
if err != nil {
log.Fatal(err)
}
defer db.Close()
// 查询
var name string
var age int
rows, err := db.Query("SELECT name, age FROM users WHERE id = ?", 1)
if err != nil {
log.Fatal(err)
}
defer rows.Close()
for rows.Next() {
err := rows.Scan(&name, &age)
if err != nil {
log.Fatal(err)
}
fmt.Printf("Name: %s, Age: %d\n", name, age)
}
// 插入
res, err := db.Exec("INSERT INTO users (name, age) VALUES (?, ?)", "Alice", 30)
if err != nil {
log.Fatal(err)
}
lastId, err := res.LastInsertId()
if err != nil {
log.Fatal(err)
}
fmt.Printf("Inserted row ID: %d\n", lastId)
// 更新
_, err = db.Exec("UPDATE users SET age = age + 1 WHERE id = ?", 1)
if err != nil {
log.Fatal(err)
}
fmt.Println("Updated row")
// 删除
_, err = db.Exec("DELETE FROM users WHERE id = ?", 2)
if err != nil {
log.Fatal(err)
}
fmt.Println("Deleted row")
}
这段代码展示了如何使用Go语言与MySQL数据库进行交互。首先,我们使用sql.Open
连接到数据库,然后通过db.Query
执行查询操作。对于插入、更新和删除操作,我们分别使用db.Exec
函数。这里的例子假设你已经有了一个名为dbname
的数据库,并且里面有一个名为users
的表,具有id
, name
, 和 age
这几个字段。这段代码提供了一个简洁的示例,展示了如何在Go中执行基本的数据库操作。