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
    }
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!