beego的orm ,用的数据库sqlite3
测试 beego的orm ,用的数据库sqlite3
1 package main 2 3 import ( 4 "fmt" 5 "github.com/astaxie/beego/orm" 6 _ "github.com/mattn/go-sqlite3" 7 ) 8 9 type Article struct { 10 Id int 11 Name string 12 } 13 14 func init() { 15 orm.RegisterDriver("sqlite", orm.DR_Sqlite) 16 orm.RegisterDataBase("default", "sqlite3", "data.db") 17 orm.RegisterModel(new(Article)) 18 } 19 func main() { 20 21 /* //创建表 没成功,后来手动建表 22 o := orm.NewOrm() 23 art := Article{Name: "sea"} 24 // 三个返回参数依次为:是否新创建的,对象Id值,错误 25 if created, id, err := o.ReadOrCreate(&art, "Name"); err == nil { 26 if created { 27 fmt.Println("New Insert an object. Id:", id) 28 } else { 29 fmt.Println("Get an object. Id:", id) 30 } 31 } 32 */ 33 34 /*//写入数据 成功 35 o := orm.NewOrm() 36 art := new(Article) 37 art.Name = "Mars" 38 39 fmt.Println(o.Insert(art)) 40 */ 41 42 // 查询数据 成功 不过发现id会自增 取出的是0,实际数据库中是1 43 o := orm.NewOrm() 44 art := Article{Name: "Mars"} 45 err := o.Read(&art, "Name") 46 47 if err == orm.ErrNoRows { 48 fmt.Println("查询不到") 49 } else if err == orm.ErrMissPK { 50 fmt.Println("找不到主键") 51 } else { 52 fmt.Println(art.Id, art.Name) 53 } 54 55 }