package main
import (
"database/sql"
"fmt"
"log"
_ "github.com/go-sql-driver/mysql"
)
func main() {
db, err := sql.Open("mysql", "root:123456@tcp(localhost:3306)/cysql")
if err != nil {
log.Fatal(err)
}
defer db.Close()
err = db.Ping()
if err != nil {
log.Fatal("Database connection failed:", err)
}
fmt.Println("Database connected successfully")
_, err = db.Exec(`CREATE TABLE IF NOT EXISTS users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50),
age INT
)`)
if err != nil {
log.Fatal("Table creation failed:", err)
}
fmt.Println("Table created successfully")
insertStmt, err := db.Prepare("INSERT INTO users(name, age) VALUES(?, ?)")
if err != nil {
log.Fatal("Insert statement preparation failed:", err)
}
defer insertStmt.Close()
result, err := insertStmt.Exec("Alice", 30)
if err != nil {
log.Fatal("Insert data failed:", err)
}
rowsAffected, _ := result.RowsAffected()
fmt.Println("Inserted", rowsAffected, "rows")
rows, err := db.Query("SELECT * FROM users")
if err != nil {
log.Fatal("Query data failed:", err)
}
defer rows.Close()
fmt.Println("Retrieving data:")
for rows.Next() {
var id int
var name string
var age int
err := rows.Scan(&id, &name, &age)
if err != nil {
log.Fatal(err)
}
fmt.Printf("ID: %d, Name: %s, Age: %d\n", id, name, age)
}
updateStmt, err := db.Prepare("UPDATE users SET age=? WHERE name=?")
if err != nil {
log.Fatal("Update statement preparation failed:", err)
}
defer updateStmt.Close()
result, err = updateStmt.Exec(35, "Alice")
if err != nil {
log.Fatal("Update data failed:", err)
}
rowsAffected, _ = result.RowsAffected()
fmt.Println("Updated", rowsAffected, "rows")
deleteStmt, err := db.Prepare("DELETE FROM users WHERE name=?")
if err != nil {
log.Fatal("Delete statement preparation failed:", err)
}
defer deleteStmt.Close()
result, err = deleteStmt.Exec("Alice")
if err != nil {
log.Fatal("Delete data failed:", err)
}
rowsAffected, _ = result.RowsAffected()
fmt.Println("Deleted", rowsAffected, "rows")
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通