golang纯sqlite

发布时间:2024-07-02 22:08:56

Golang中使用纯SQLite的简单介绍

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进行数据库操作,首先需要建立数据库连接。可以使用以下代码创建一个SQLite数据库文件并与其建立连接:

db, err := sql.Open("sqlite3", "./example.db")
if err != nil {
    log.Fatal(err)
}
defer db.Close()

上述代码中,我们使用sql.Open函数打开一个SQLite数据库文件,若文件不存在,则会自动创建。连接建立后,我们需要通过调用db.Close()来释放连接。

执行SQL语句

连接数据库后,我们可以执行各种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进行数据库操作了。

相关推荐