xorm

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()

你可能感兴趣的:(xorm)