go语言数据库链接以及使用
在Go语言中,可以通过标准库中的database/sql来操作数据库。database/sql提供了一个通用的接口,可以与各种关系型数据库进行交互,如MySQL、PostgreSQL、SQLite等。
链接数据库:
- 导入驱动
在Go语言中,需要先导入相应的数据库驱动,如MySQL的驱动github.com/go-sql-driver/mysql。
- 打开链接
import (
"database/sql"
_ "github.com/go-sql-driver/mysql"
)
func main() {
db, err := sql.Open("mysql", "user:password@tcp(127.0.0.1:3306)/dbname")
if err != nil {
// 错误处理
}
defer db.Close()
}
- 测试链接
err = db.Ping()
if err != nil {
// 错误处理
}
使用数据库:
- 查询数据
rows, err := db.Query("SELECT * FROM user WHERE id = ?", 1)
if err != nil {
// 错误处理
}
defer rows.Close()
for rows.Next() {
var id int
var name string
err = rows.Scan(&id, &name)
if err != nil {
// 错误处理
}
fmt.Printf("id: %d, name: %s\n", id, name)
}
if err = rows.Err(); err != nil {
// 错误处理
}
- 插入数据
result, err := db.Exec("INSERT INTO user(name) VALUES(?)", "Jack")
if err != nil {
// 错误处理
}
lastInsertId, err := result.LastInsertId()
if err != nil {
// 错误处理
}
rowsAffected, err := result.RowsAffected()
if err != nil {
// 错误处理
}
- 更新数据
result, err := db.Exec("UPDATE user SET name = ? WHERE id = ?", "Tom", 1)
if err != nil {
// 错误处理
}
rowsAffected, err := result.RowsAffected()
if err != nil {
// 错误处理
}
- 删除数据
result, err := db.Exec("DELETE FROM user WHERE id = ?", 1)
if err != nil {
// 错误处理
}
rowsAffected, err := result.RowsAffected()
if err != nil {
// 错误处理
}
``
原文地址: http://www.cveoy.top/t/topic/hjKy 著作权归作者所有。请勿转载和采集!