package main
import (
"database/sql"
"fmt"
"log"
_ "github.com/go-sql-driver/mysql"
)
func main() {
// 数据库连接信息
dsn := "user:password@tcp(127.0.0.1:3306)/dbname"
// 打开数据库连接
db, err := sql.Open("mysql", dsn)
if err != nil {
log.Fatal(err)
}
defer db.Close()
// 测试连接是否成功
err = db.Ping()
if err != nil {
log.Fatal(err)
}
fmt.Println("Connected to the database successfully!")
// 查询示例
rows, err := db.Query("SELECT id, name FROM users")
if err != nil {
log.Fatal(err)
}
defer rows.Close()
for rows.Next() {
var id int
var name string
if err := rows.Scan(&id, &name); err != nil {
log.Fatal(err)
}
fmt.Printf("ID: %d, Name: %s\n", id, name)
}
// 插入示例
stmt, err := db.Prepare("INSERT INTO users(name) VALUES(?)")
if err != nil {
log.Fatal(err)
}
defer stmt.Close()
res, err := stmt.Exec("Alice")
if err != nil {
log.Fatal(err)
}
lastInsertID, err := res.LastInsertId()
if err != nil {
log.Fatal(err)
}
fmt.Printf("Inserted user with ID: %d\n", lastInsertID)
}
导入必要的包:
database/sql
:用于与数据库交互的标准库。github.com/go-sql-driver/mysql
:MySQL驱动程序,用于连接MySQL数据库。数据库连接信息:
dsn
是数据源名称 (Data Source Name),包含连接到MySQL数据库所需的信息(用户名、密码、主机、端口和数据库名)。打开数据库连接:
sql.Open
函数创建一个新的数据库句柄。如果连接失败,程序将终止并输出错误信息。测试连接:
db.Ping()
测试与数据库的连接是否成功。如果连接失败,程序将终止并输出错误信息。查询操作:
db.Query
执行SQL查询语句,并遍历结果集。每一行数据通过 rows.Scan
方法读取到变量中。插入操作:
db.Prepare
准备一个SQL插入语句,并使用 stmt.Exec
执行该语句。插入成功后,可以通过 res.LastInsertId
获取最后插入记录的ID。关闭资源:
defer
确保在函数结束时关闭数据库连接和预处理语句,以释放资源。上一篇:mysql调用存储过程
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站