beego框架之orm模块——sqlite
今天基于beego ORM演示sqlite3数据库时,遇到了一小问题。
问题现象1:下载go-sqlite3(go get github.com/mattn/go-sqlite3)驱动时报错说 gcc 不在 PATH 目录里。
问题现象2:运行导入了go-sqlite3驱动的文件时编译报错说 gcc 不在 PATH 目录里。
问题发生的原因:sqlitle3是个cgo库,需要gcc编译c代码。
问题的解决办法:安装tdm-gcc或Mingw。(备注:本人安装的是tdm-gcc,下载地址:http://tdm-gcc.tdragon.net/download)
beego框架连接及处理sqlite3数据库。
models/models.go
1 package models 2 3 import ( 4 "github.com/astaxie/beego/orm" 5 ) 6 7 type Student struct { 8 Id int // 主键 9 Name string 10 Age int 11 Sex string 12 Score float32 13 Addr string 14 } 15 16 func init() { 17 orm.RegisterModel(new(Student)) 18 }
main.go
package main import ( "fmt" "github.com/astaxie/beego" "github.com/astaxie/beego/orm" "ormsqlite/models" _ "github.com/mattn/go-sqlite3" _ "ormsqlite/routers" ) func init() { orm.RegisterDriver("sqlite", orm.DR_Sqlite) orm.RegisterDataBase("default", "sqlite3", "./datas/test.db") orm.RunSyncdb("default", false, true) } func main() { o := orm.NewOrm() o.Using("default") stu := new(models.Student) stu.Name = "bei" stu.Age = 25 stu.Sex = "m" stu.Score = 88 stu.Addr = "hunan.leiyang" fmt.Println(o.Insert(stu)) beego.Run() }
查看sqlite_DB里的数据: