Golang数据库编程详解 | 深入浅出Go语言原生数据库编程
package main
import (
"database/sql"
"fmt"
_ "github.com/go-sql-driver/mysql" // 导入MySQL驱动
"log"
)
func main() {
// 连接数据库
db, err := sql.Open("mysql", "username:password@tcp(localhost:3306)/dbname")
if err != nil {
log.Fatal(err)
}
defer db.Close()
// 检查数据库连接是否成功
if err := db.Ping(); err != nil {
log.Fatal(err)
}
// 执行查询
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)
}
// 获取插入ID
insertedId, err := res.LastInsertId()
if err != nil {
log.Fatal(err)
}
fmt.Printf("Inserted row ID: %d\n", insertedId)
// 更新数据
_, err = db.Exec("UPDATE users SET age = ? WHERE id = ?", 31, 1)
if err != nil {
log.Fatal(err)
}
fmt.Println("Update successful")
// 删除数据
_, err = db.Exec("DELETE FROM users WHERE id = ?", 2)
if err != nil {
log.Fatal(err)
}
fmt.Println("Delete successful")
}
这段代码展示了如何在Go语言中使用database/sql
包和MySQL驱动进行数据库操作,包括连接数据库、执行查询、插入、更新和删除数据。代码简洁且注重实用性,对于学习Go语言数据库编程的开发者有很好的教育价值。
评论已关闭