Windows:
d:
cd d:\goproject\bin
xorm reverse mysql root:888888@tcp(127.0.0.1:3306)/golanglab?charset=utf8 D:\GoProject\src\github.com\go-xorm\cmd\xorm\templates\goxorm
MacOS:
cd /Users/admin/go/bin
./xorm reverse mysql root:888888@(127.0.0.1:3306)/golanglab?charset=utf8 /Users/admin/go/src/github.com/go-xorm/cmd/xorm/templates/goxorm
//生成的 Go Model 代码在:/Users/admin/go/bin/model/*.go
基本上它只能这样用:engine.SQL("....").Find(&X)
- X 的结构必须与结果集(部分)保持一致
- 结构中的字段名大小写非常受限
- 结构中的字段名不能是一个字母(???)
- 如果 SQL 中的参数(问号)太多,问号传递参数就很 SB 了...
只好利用 text/template 的命名参数来格式化 SQL 字符串.
基本上不成体系.没有 MS 的功力,还想做 MSSQL,LINQ 的事...
mysql.ROW_COUNT() is buggy.
运行复杂SQL:
wr := bytes.Buffer{}
sql := `select {{.xxxx}} ? ?`
template.Must(template.New("").Parse(sql)).Execute(&wr, map[string]interface{}{
"id": r.FormValue("id"),
})
oo := []struct {
model.Account `xorm:"extends"`
Abc string
}{}
eng.SQL(wr.String(),8,9).Find(&oo)
wr.Reset()
获取总行数SQL:
count, _ = eng.SQL("select ....").Count()
count, _ = eng.SQL("select count(*)....").Count()