xorm
xorm是一個簡單而強大的Go語言ORM庫. 通過它可以使數據庫操作非常簡便。
電子書 XORM操作指南
常用命令
xorm 是一組數據庫操作命令的工具,包含如下命令:
reverse 反轉一個數據庫結構,生成代碼
shell 通用的數據庫操作客戶端,可對數據庫結構和數據操作
dump Dump數據庫中所有結構和數據到標準輸出
source 從標註輸入中執行SQL文件
driver 列出所有支持的數據庫驅動
編譯xorm工具
下載數據庫驅動
go get github.com/go-sql-driver/mysql //MyMysql
go get github.com/ziutek/mymysql/godrv //MyMysql
go get github.com/lib/pq //Postgres
go get github.com/mattn/go-sqlite3 //SQLite
go get github.com/go-xorm/cmd/xorm
到GOPATH\src\github.com\go-xorm\cmd\xorm 目錄下,執行
go build
當前目錄產生xorm文件,window下產生xorm.exe文件
生成struct
./xorm reverse mysql root:password@$"@"tcp(host:3306)"/yzm_test?charset=utf8 templates/goxorm
目錄參數省略,會在當前目錄建立一個 models 目錄, 該目錄有生成的go文件
內容如:
package model
import (
"time"
)
type ClickData struct {
Id int `xorm:"not null pk autoincr comment('主鍵') INT(10)"`
Adid string `xorm:"not null default '' comment('廣告計劃id') VARCHAR(32)"`
Cid string `xorm:"not null default '' comment('廣告創意id') VARCHAR(100)"`
ImeiMd5 string `xorm:"not null default '' comment('安卓設備識別碼的md5') unique(uk_its) CHAR(32)"`
Mac string `xorm:"not null default '' comment('MAC地址的md5sum') CHAR(32)"`
Androidid string `xorm:"VARCHAR(40)"`
ClientIp string `xorm:"VARCHAR(40)"`
Source string `xorm:"not null default '' comment('媒體來源') unique(uk_its) VARCHAR(32)"`
Timestamp int64 `xorm:"not null default 0 comment('點擊時間') unique(uk_its) BIGINT(18)"`
Callback string `xorm:"not null default '' comment('回調參數') VARCHAR(2048)"`
Channel string `xorm:"comment('渠道唯一標示') VARCHAR(40)"`
ChangeFlag int `xorm:"not null default 0 comment('渠道是否變更(0:沒有變更; 1:變更過)') TINYINT(1)"`
OldChannel string `xorm:"not null default '' comment('原始日誌的渠道名') VARCHAR(50)"`
BookId int `xorm:"default 0 INT(11)"`
CreatedAt time.Time `xorm:"not null default 'CURRENT_TIMESTAMP' comment('插入日期') DATETIME"`
}