首先,你需要导入合适的数据库驱动。例如,要操作MySQL数据库,你需要以下导入:
import (
"database/sql"
_ "github.com/go-sql-driver/mysql"
)
注意,此处的_
表示我们导入但不直接使用该包,仅初始化其侧效应。
使用sql.Open
函数建立与数据库的连接:
db, err := sql.Open("mysql", "user:password@tcp(127.0.0.1:3306)/dbname")
if err != nil {
log.Fatal(err)
}
defer db.Close()
使用Query
或QueryRow
执行SQL查询:
rows, err := db.Query("SELECT id, name FROM users")
if err != nil {
log.Fatal(err)
}
defer rows.Close()
使用Rows
对象的Scan
方法提取查询结果:
for rows.Next() {
var id int
var name string
err := rows.Scan(&id, &name)
if err != nil {
log.Fatal(err)
}
fmt.Println(id, name)
}
(*sql.Rows).Next方法用于迭代查询结果集的下一行。
当还有下一行数据时,该方法返回true,并可以使用Scan方法来提取该行
的数据。当没有更多行时,返回false。
使用Exec
方法执行非查询SQL命令:
_, err := db.Exec("INSERT INTO users(name) VALUES('John')")
if err != nil {
log.Fatal(err)
}
通过Begin
和Commit
或Rollback
来执行事务操作:
tx, err := db.Begin()
if err != nil {
log.Fatal(err)
}
_, err = tx.Exec("INSERT INTO users(name) VALUES('John')")
if err != nil {
tx.Rollback()
log.Fatal(err)
}
tx.Commit()
database/sql
库为Go开发人员提供了一套强大的工具来进行数据库操作。掌握其基础用法有助于提高开发效率和代码可维护性。这只是入门阶段的内容,深入了解还需要查阅更多资料和在实际项目中不断练习。