model 层实现问题
- 文档中实现model数据库操作使用的是以下两个库
"github.com/astaxie/beedb" "github.com/ziutek/mymysql/godrv"
- 但实际上beedb这个库已经弃用了,作者astaxie推荐使用beego/orm,具体操作可以参考官方文档beego/orm doc。
- 如下是我自己用beego/orm实现的model代码,仅供参考
package models import ( "time" "github.com/astaxie/beego" "github.com/astaxie/beego/orm" _ "github.com/go-sql-driver/mysql" ) //Blog type Blog struct { Id int `PK` Title string Content string Created time.Time } // func init() { //register database with drivermode orm.RegisterDataBase("default", "mysql", "username:password@tcp(Ip:port)/databasename?charset=utf8", 30) //register table orm.RegisterModel(new(Blog)) //create table orm.RunSyncdb("default", false, true) //set the explort file of log beego.SetLogger("file", `{"filename":"logs/test.log"}`) } // func GetLink() orm.Ormer { o := orm.NewOrm() return o } // func GetAll() (blogs []Blog) { db := GetLink() db.QueryTable("Blog").All(&blogs) return } // func GetBlog(id int) (blog Blog) { db := GetLink() blog.Id = id db.Read(&blog) return } // func SaveBlog(blog Blog) (bg Blog) { db := GetLink() f := Blog{Id: blog.Id} if db.Read(&f) == nil { _, err := db.Update(&blog) if err != nil { beego.Error("Update error:", err) } else { beego.Informational("update success!") } } else { db.Insert(&blog) beego.Informational("Insert success!") } return bg } // func DelBlog(blog Blog) { db := GetLink() db.Delete(&blog) return }