发布时间:2024-11-22 00:06:20
在本教程中,我们将介绍如何使用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语句来满足实际业务场景。