最近开源了 gosql 一款 golang style 语法的 golang orm 库.
https://github.com/rushteam/gosql
优雅的语法,支持批量插入,轻松嵌套条件,处理各种复杂的查询 sql,诸如: and 和 or 组合 全语法支持: for update 锁,is null, exists 子查询等基本上所有 sql 语法
求波关注,star
风格如下:
user := &UserModel{}
err := db.Fetch(user,
gosql.Columns("id","name"),
gosql.Where("id", 1),
gosql.Where("[like]name", "j%")
gosql.OrWhere(func(s *Clause) {
s.Where("[>=]score", "90")
s.Where("[<=]age", "100")
}),
GroupBy("type"),
OrderBy("score DESC"),
)
特点
- Golang-style SQL builder go 语言风格 sql 生成
- Unlimited nesting query 查询条件无限嵌套
- Reading and Writing Separation 读写分离
- Delay connection creation 延迟创建连接
- ORM maping to sturct ORM 映射结构体
- Transactions 事务支持
- Versatile 功能多样的
- Clean Code 简洁的代码
- Bulk Insert 支持批量插入
仓库地址:
https://github.com/rushteam/gosql
更多详情可以看文档,更多细节可以看代码