分享
gorose-最风骚的go orm,链式操作, 开箱即用, 一分钟上手, 让golang操作数据库成为一种享受
fizz · · 3185 次点击 · · 开始浏览这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。
gorose, 最风骚的go orm, 拥有链式操作, 开箱即用, 一分钟上手等八大风骚, 让golang操作数据库成为一种享受, 妈妈再也看不到我处理数据的痛苦了, 下面就让我一一讲解gorose的风情
风骚一 : 开箱即用, 一分钟上手
gorose.Open("xxxxxx这里是配置文件中的数据库配置")
var db gorose.Database
db.Query("select * from user") // 原生sql执行, 返回格式化后的结果
风骚二 : 链式操作, 尽显妩媚之姿
db.Table("user").First()
get sql : select * from user where id=1
风骚三 : 直接查询想要的字段, 无需预先声明字段类型
db.Table("user").Fields("id as uid,name").Where("id", ">", 1).Get()
风骚四 : JSON返回自由切换
- 指定json
gorose.JsonEncode(true)
db.Table("user").First()
- 取消json返回
gorose.JsonEncode(false)
db.Table("user").First()
或者
db.JsonEncode(false).Table("user").First()
风骚五 : 一键事务, 全自动开启/回滚/提交事务, 我只需专注于代码本身
db.Transaction(func(){
db.Table("user").Data(map[string]interface{}{"name":"fizz"}).Insert()
db.Table("user").Data(map[string]interface{}{"name":"fizz2"}).Where("id",1).Update()
})
风骚六 : 一键切换数据库连接, 自由畅想在任何数据库之间
db.Connect("mysql2").Table("goods").First()
风骚七 : 大量数据自动分块处理, 我还是只需要专注于代码本身
user表中的所有数据, 我每次取出100条, 然后处理完, 自动取下一个100条, 继续处理, 如此反复, 直到处理完指定条件的数据
db.Table("user").Where("id","<",10000).Chunk(100, func(data []map[string]interface{}){
for _, item := range data {
fmt.Println(item["name"])
}
})
风骚八 : 无感知读写分离, 依然只专注于代码本身, 只需要在配置中设置读库和写库即可
更多风骚之处
- 请看 https://github.com/gohouse/gorose
- 或者 点击加入qq群: 470809220 慢慢撩~~~
有疑问加站长微信联系(非本文作者)
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
关注微信3185 次点击
添加一条新回复
(您需要 后才能回复 没有账号 ?)
- 请尽量让自己的回复能够对别人有帮助
- 支持 Markdown 格式, **粗体**、~~删除线~~、
`单行代码` - 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
- 图片支持拖拽、截图粘贴等方式上传
收入到我管理的专栏 新建专栏
gorose, 最风骚的go orm, 拥有链式操作, 开箱即用, 一分钟上手等八大风骚, 让golang操作数据库成为一种享受, 妈妈再也看不到我处理数据的痛苦了, 下面就让我一一讲解gorose的风情
风骚一 : 开箱即用, 一分钟上手
gorose.Open("xxxxxx这里是配置文件中的数据库配置")
var db gorose.Database
db.Query("select * from user") // 原生sql执行, 返回格式化后的结果
风骚二 : 链式操作, 尽显妩媚之姿
db.Table("user").First()
get sql : select * from user where id=1
风骚三 : 直接查询想要的字段, 无需预先声明字段类型
db.Table("user").Fields("id as uid,name").Where("id", ">", 1).Get()
风骚四 : JSON返回自由切换
- 指定json
gorose.JsonEncode(true)
db.Table("user").First()
- 取消json返回
gorose.JsonEncode(false)
db.Table("user").First()
或者
db.JsonEncode(false).Table("user").First()
风骚五 : 一键事务, 全自动开启/回滚/提交事务, 我只需专注于代码本身
db.Transaction(func(){
db.Table("user").Data(map[string]interface{}{"name":"fizz"}).Insert()
db.Table("user").Data(map[string]interface{}{"name":"fizz2"}).Where("id",1).Update()
})
风骚六 : 一键切换数据库连接, 自由畅想在任何数据库之间
db.Connect("mysql2").Table("goods").First()
风骚七 : 大量数据自动分块处理, 我还是只需要专注于代码本身
user表中的所有数据, 我每次取出100条, 然后处理完, 自动取下一个100条, 继续处理, 如此反复, 直到处理完指定条件的数据
db.Table("user").Where("id","<",10000).Chunk(100, func(data []map[string]interface{}){
for _, item := range data {
fmt.Println(item["name"])
}
})
风骚八 : 无感知读写分离, 依然只专注于代码本身, 只需要在配置中设置读库和写库即可
更多风骚之处
- 请看 https://github.com/gohouse/gorose
- 或者 点击加入qq群: 470809220 慢慢撩~~~