• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Go&SQLiteonWindows

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

一般golang使用的sqlite驱动包都是github.com/mattn/go-sqlite3,但是官方并没有直接支持windows平台的编译,因为windows平台编译默认需要gcc支持

其实解决办法很简单,只需要在windows平台下安装gcc即可正常使用。

编译错误如下:

go get github.com/mattn/go-sqlite3
# github.com/mattn/go-sqlite3
exec: "gcc": executable file not found in %PATH%

 

下面说明如何解决:

1. 下载GCC  http://tdm-gcc.tdragon.net/download

2. 安装GCC

 

 

3. 打开MinGW Command Prompt 安装sqlite3

go get github.com/mattn/go-sqlite3

 

4. 安装好就可以测试程序了

package main

import (
    "database/sql"
    "fmt"

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

func main() {
    //1. Open connection

    db, err := sql.Open("sqlite3", ":memory:")
    checkErr(err)
    defer db.Close()

    //2. fail-fast if can't connect to DB

    checkErr(db.Ping())

    //3. create table

    _, err = db.Exec("create table USER (ID integer PRIMARY KEY, NAME string not null); delete from USER;")
    checkErr(err)

    //4. insert data

    //4.1 Begin transaction
    tx, err := db.Begin()
    checkErr(err)

    //4.2 Prepare insert stmt.
    stmt, err := tx.Prepare("insert into USER(ID, NAME) values(?, ?)")
    checkErr(err)
    defer stmt.Close()

    for i := 0; i < 10; i++ {
        _, err = stmt.Exec(i, fmt.Sprint("user-", i))
        checkErr(err)
    }

    //4.3 Commit transaction
    tx.Commit()

    //5. Query data

    rows, err := db.Query("select * from USER")
    checkErr(err)
    defer rows.Close()

    //5.1 Iterate through result set
    for rows.Next() {
        var name string
        var id int
        err := rows.Scan(&id, &name)
        checkErr(err)
        fmt.Printf("id=%d, name=%s\n", id, name)
    }

    //5.2 check error, if any, that were encountered during iteration
    err = rows.Err()
    checkErr(err)
}

func checkErr(err error, args ...string) {
    if err != nil {
        fmt.Println("Error")
        fmt.Println("%q: %s", err, args)
    }
}

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap