golang操作sqlite3教程

发布时间:2024-12-22 22:57:55

Golang操作SQLite3教程

在本教程中,我们将介绍如何使用Golang操作SQLite3数据库。SQLite3是一个轻量级的嵌入式数据库,适用于小型项目和个人使用。

首先,我们需要导入相应的包:

import (
    "database/sql"
    "fmt"
    _ "github.com/mattn/go-sqlite3"
)

接下来,我们需要创建或打开一个SQLite3数据库文件:

db, err := sql.Open("sqlite3", "./test.db")
if err != nil {
    fmt.Println(err)
    return
}
defer db.Close()

现在我们可以执行SQL查询了,下面是一个插入数据的示例:

_, err = db.Exec("INSERT INTO users (name, age) VALUES (?, ?)", "John Doe", 30)
if err != nil {
    fmt.Println(err)
    return
}

如果要查询数据,可以使用Query方法:

rows, err := db.Query("SELECT * FROM users")
if err != nil {
    fmt.Println(err)
    return
}
defer rows.Close()

for rows.Next() {
    var name string
    var age int
    err = rows.Scan(&name, &age)
    if err != nil {
        fmt.Println(err)
        return
    }
    fmt.Println("Name:", name, "Age:", age)
}

上述示例中,我们首先定义了两个变量name和age,然后通过Scan方法将查询结果赋值给这两个变量,最后输出结果。

如果要更新数据,可以使用Exec方法:

_, err = db.Exec("UPDATE users SET age = ? WHERE name = ?", 40, "John Doe")
if err != nil {
    fmt.Println(err)
    return
}

要删除数据,可以使用Exec方法:

_, err = db.Exec("DELETE FROM users WHERE name = ?", "John Doe")
if err != nil {
    fmt.Println(err)
    return
}

除了基本的插入、查询、更新和删除操作,SQLite3还支持事务处理。下面是一个示例:

tx, err := db.Begin()
if err != nil {
    fmt.Println(err)
    return
}

stmt, err := tx.Prepare("INSERT INTO users (name, age) VALUES (?, ?)")
if err != nil {
    fmt.Println(err)
    return
}
defer stmt.Close()

_, err = stmt.Exec("Jane Smith", 25)
if err != nil {
    fmt.Println(err)
    return
}

_, err = stmt.Exec("Bob Johnson", 35)
if err != nil {
    fmt.Println(err)
    return
}

err = tx.Commit()
if err != nil {
    fmt.Println(err)
    return
}

在上述示例中,我们首先创建了一个事务对象tx,然后使用Prepare方法创建了一个预处理语句stmt,接着执行了两次插入操作,并最终提交了事务。

在使用完数据库之后,我们需要关闭连接:

db.Close()

以上就是使用Golang操作SQLite3数据库的基本方法。你可以根据自己的需求进行扩展和优化,使用更复杂的SQL语句来满足实际业务场景。

相关推荐