golang 数据库sqlite3

发布时间:2024-12-23 03:16:53

1. 什么是SQLite3

SQLite是一款轻量级的嵌入式数据库引擎,适用于各种规模的应用程序。它是以C语言编写的,无需单独的服务器进程,以库的方式嵌入到应用程序中,可以直接读写文件来进行数据库操作。SQLite3是SQLite的第三个主要版本,提供了更多功能和性能的改进。

2. 使用SQLite3的优势

SQLite3具有以下几个显著的优势:

简单易用:SQLite3的API简单易懂,学习成本低,上手快速。

无需安装配置:由于SQLite是嵌入式数据库,无需单独的服务进程,也不需要复杂的安装和配置过程。

跨平台支持:SQLite3支持跨平台运行,可以在不同的操作系统上使用,包括Windows、Linux、Mac等。

3. 使用SQLite3进行数据存储和检索

SQLite3提供了丰富的SQL语法和API,使得数据的存储和检索变得简单高效。

通过SQLite3的API,我们可以创建数据库、创建表、插入数据、更新数据、删除数据等。下面是一个使用SQLite3进行数据存储和检索的示例:

package main

import (
    "database/sql"
    "fmt"

    _ "github.com/mattn/go-sqlite3"
)

func main() {
    db, err := sql.Open("sqlite3", "test.db")
    if err != nil {
        panic(err)
    }
    defer db.Close()

    _, err = db.Exec(`CREATE TABLE IF NOT EXISTS users (
        id INTEGER PRIMARY KEY AUTOINCREMENT,
        name TEXT,
        age INTEGER
    )`)
    if err != nil {
        panic(err)
    }

    _, err = db.Exec(`INSERT INTO users (name, age) VALUES (?, ?)`, "Alice", 25)
    if err != nil {
        panic(err)
    }

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

    for rows.Next() {
        var id int
        var name string
        var age int
        err = rows.Scan(&id, &name, &age)
        if err != nil {
            panic(err)
        }
        fmt.Println(id, name, age)
    }

    err = rows.Err()
    if err != nil {
        panic(err)
    }
}

以上代码使用了Go语言的`database/sql`包和`github.com/mattn/go-sqlite3`驱动来实现与SQLite3的交互。通过`sql.Open`函数打开数据库,并通过`db.Exec`函数执行SQL语句创建表和插入数据。接下来,通过`db.Query`函数执行SQL语句获取查询结果,并使用`rows.Scan`函数将结果映射到变量中。

通过上述示例,我们可以看到使用SQLite3进行数据存储和检索的过程非常简单明了。

相关推荐