发布时间:2024-12-23 03:02:55
SQLite是一个轻量级的关系型数据库管理系统,完全嵌入在应用程序中。Golang是一种高性能的编程语言,因其并发性和内置的轻量级线程模型(goroutine)而备受欢迎。本文将介绍如何在Golang中使用纯SQLite进行数据库操作。
首先,我们需要安装SQLite驱动。Golang官方提供了一个名为go-sqlite3
的SQLite驱动,可以通过以下命令安装:
go get github.com/mattn/go-sqlite3
安装完成后,即可在代码中导入该驱动:import "github.com/mattn/go-sqlite3"
。
使用纯SQLite进行数据库操作,首先需要建立数据库连接。可以使用以下代码创建一个SQLite数据库文件并与其建立连接:
db, err := sql.Open("sqlite3", "./example.db")
if err != nil {
log.Fatal(err)
}
defer db.Close()
上述代码中,我们使用sql.Open
函数打开一个SQLite数据库文件,若文件不存在,则会自动创建。连接建立后,我们需要通过调用db.Close()
来释放连接。
连接数据库后,我们可以执行各种SQL语句,包括创建表、插入数据、查询数据等。以下是一个示例:
_, err := db.Exec("CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)")
if err != nil {
log.Fatal(err)
}
stmt, err := db.Prepare("INSERT INTO users(name, age) VALUES(?, ?)")
if err != nil {
log.Fatal(err)
}
defer stmt.Close()
_, err = stmt.Exec("Alice", 25)
if err != nil {
log.Fatal(err)
}
rows, err := db.Query("SELECT id, name, age FROM users")
if err != nil {
log.Fatal(err)
}
defer rows.Close()
for rows.Next() {
var id, age int
var name string
err = rows.Scan(&id, &name, &age)
if err != nil {
log.Fatal(err)
}
fmt.Println(id, name, age)
}
上述代码中,我们首先使用db.Exec
创建一个名为users
的表,若表已存在则不会重复创建。接着,我们通过db.Prepare
准备一个插入语句模板,并使用stmt.Exec
执行插入操作。然后,我们使用db.Query
查询所有用户数据,并通过rows.Scan
读取数据。
以上只是SQLite在Golang中的简单应用示例,实际使用中可能涉及更复杂和实用的操作,如索引、事务等。不过,通过以上介绍,你可以开始在Golang中使用纯SQLite进行数据库操作了。