close

ORM的用與不用至今還沒有一個一致的答案,尤其是ORM對複雜語句的支援不足一直是很大的問題,效能的影響就又是另一個問題,但假如是一般輕量小規模的Web服務,其實我是還蠻推薦使用的就是。

 

找了一下Golang上比較主流的orm套件以gorm與xorm為大宗,但因為gorm一見面就跟你要donate,雖然還是很感謝作者們的付出,但我還是用xorm好了....

XORM操作指南裡面其實已經對xorm的使用有很完整的介紹,這裡只稍微補充:

 

非本地端的Data Source的連接字串格式,以mysql為例

$acc:$pwd@tcp($address:$port)/$schema

    dataSource = "root:123@tcp(127.0.0.1:3306)/GoLang"
    engine, err := xorm.NewEngine("mysql", dataSource)

 

複合式PK與Index設定範例,畢竟這實在太常要用到

type Team struct {
    Owner    int64     `xorm:"'Owner' pk"`
    TeamID   int       `xorm:"'TeamID' pk"`
    Position int       `xorm:"'Position' pk"`
    CardID   int       `xorm:"'CardID' NOT NULL index(OwnerCardID)"`
    Name     string    `xorm:"'Name' NOT NULL varchar(50) index(OwnerCardID)"`
    Created  time.Time `xorm:"'Created' NOT NULL"`
    Updated  time.Time `xorm:"'Updated' NOT NULL"`
}

err = engine.Sync2(new(Team))

 

下一篇:

[Golang] 學習筆記(5) 簡單的遊戲伺服器骨架與效能測試

arrow
arrow
    文章標籤
    golang orm
    全站熱搜

    不來嗯 發表在 痞客邦 留言(0) 人氣()