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()
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.方法Update接受的第一个参数必须是指针地址,指向需要更新的内容 2.更新的条件 _,err=x.Cols(...
    漯河龙阅读 6,004评论 0 0
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,403评论 19 139
  • xorm xorm是一个Go语言ORM库. 通过它可以使数据库操作非常简便. 全部文档点我 用法入门: 前提:定义...
    ifcoder阅读 23,908评论 3 26
  • 数据库引擎为innodb事务才有效,myisam引擎是不支持事务。 package mainimport (_ "...
    Uzero阅读 10,091评论 0 0
  • 如果说上班族是律诗 那么退休族便是散文诗 无业游民便是随笔 律诗有严格的约束 讲究平仄相反 韵律一致 对偶句整齐 ...
    旖旎i阅读 1,605评论 6 16