在Go语言中,可以通过标准库中的database/sql来操作数据库。database/sql提供了一个通用的接口,可以与各种关系型数据库进行交互,如MySQL、PostgreSQL、SQLite等。

链接数据库:

  1. 导入驱动

在Go语言中,需要先导入相应的数据库驱动,如MySQL的驱动github.com/go-sql-driver/mysql

  1. 打开链接
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()
}
  1. 测试链接
err = db.Ping()
if err != nil {
    // 错误处理
}

使用数据库:

  1. 查询数据
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 {
    // 错误处理
}
  1. 插入数据
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 {
    // 错误处理
}
  1. 更新数据
result, err := db.Exec("UPDATE user SET name = ? WHERE id = ?", "Tom", 1)
if err != nil {
    // 错误处理
}
rowsAffected, err := result.RowsAffected()
if err != nil {
    // 错误处理
}
  1. 删除数据
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 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录