1go使用sqlite3

发布时间 2023-12-13 20:16:30作者: 李若盛开

萨顶顶

package main

import (
    "database/sql"
    "fmt"
    "log"

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

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

    sqlStmt := `
    create table foo (id integer not null primary key, name text);
    delete from foo;
    `
    _, err = db.Exec(sqlStmt)
    if err != nil {
        log.Printf("%q: %s\n", err, sqlStmt)
        return
    }

    tx, err := db.Begin()
    if err != nil {
        log.Fatal(err)
    }
    stmt, err := tx.Prepare("insert into foo(id, name) values(?, ?)")
    if err != nil {
        log.Fatal(err)
    }
    defer stmt.Close()
    for i := 0; i < 100; i++ {
        _, err = stmt.Exec(i, fmt.Sprintf("世界%03d", i))
        if err != nil {
            log.Fatal(err)
        }
    }
    tx.Commit()

    rows, err := db.Query("select id, name from foo")
    if err != nil {
        log.Fatal(err)
    }
    defer rows.Close()
    for rows.Next() {
        var id int
        var name string
        err = rows.Scan(&id, &name)
        if err != nil {
            log.Fatal(err)
        }
        log.Println(id, name)
    }
    err = rows.Err()
    if err != nil {
        log.Fatal(err)
    }
    fmt.Println("success")
}

windows必须安装gcc环境,才能支持sqlite

mingw-w64 项目提供了很多 Windows 平台的工具链和包,这里以 w64devkit 为例,安装 C 和 C++ 编译器。大家可以根据自己的需要选择对应的工具。

将下载的 w64devkit 压缩包解压后,放到任意目录即可,这里将其拷贝到 C:\Program Files (x86)\w64devkit。

解压后 w64devkit,其目录如下:

在 bin 目录下,可以看到相关的编译器和 Linux 环境下常用的命令。

配置环境变量

 

验证

打开命令行 Windows cmd 或 PowerShell,执行如下命令:

gcc --version

 最后执行 go run main.go (开启一个cmd黑窗口运行没问题,但是在)