一般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 := ; i < ; 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)
}
}

最新文章

  1. 练习:使用nmcli 配置网络连接
  2. mvc Razor 视图中找不到 ViewBag的定义
  3. 配置FastReport,FastReport报表加载不出来
  4. 常用linux命令索引
  5. Peer certificate cannot be authenticated with known CA certificates.
  6. 【转载】struct和typedef struct彻底明白了
  7. 正确AJAX了解该技术的,创建,应用
  8. Java常用类(四)之数组工具类Arrays
  9. 【转载】从头编写 asp.net core 2.0 web api 基础框架 (5) EF CRUD
  10. (二)Qt窗口应用程序Widget
  11. PHP6天基础知识部分
  12. CodeForces 1117C Magic Ship (循环节+二分答案)
  13. 并发之java.util.concurrent.atomic原子操作类包
  14. Linux下查看磁盘挂载的几种方法
  15. [转]MyEclipse内存不足问题
  16. JS库汇总[重要]
  17. 非抢占式RCU实现(二),解释:为什么 RCU_NEXT_SIZE 宏值是4?
  18. 微信小程序的图片懒加载
  19. tomcat manager
  20. java笔记--线程休眠sleep()的运用

热门文章

  1. Redis 实例排除步骤
  2. SecureCRT终端上使用spark-shell时按退格键无反应的解决方法
  3. NIO - Selector源码分析
  4. vivado设计一:建立第一个入门工程(基于zybo)
  5. Sublime Text 编辑器 插件 之 &quot;Sublime Alignment&quot; 详解
  6. thread_为什么多线程是个坏主意
  7. Java Web框架play framework的下载与环境变量配置
  8. shader 笔记(一)
  9. PHP学习笔记(4)GD库画五角星
  10. c# 获取Excel内容的分析