一分钟上手, 让 Golang 操作数据库成为一种享受

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(100func(data []map[string]interface{}){
   for _, item := range data {
       fmt.Println(item["name"])
   }
})

 

风骚八 

 

无感知读写分离, 依然只专注于代码本身, 只需要在配置中设置读库和写库即可

 

GitHub 查看:https://github.com/gohouse/gorose

 

posted on   生活费  阅读(1173)  评论(0)    收藏  举报

编辑推荐:
· dotnet 9 通过 AppHostRelativeDotNet 指定自定义的运行时路径
· 如何统计不同电话号码的个数?—位图法
· C#高性能开发之类型系统:从 C# 7.0 到 C# 14 的类型系统演进全景
· 从零实现富文本编辑器#3-基于Delta的线性数据结构模型
· 记一次 .NET某旅行社酒店管理系统 卡死分析
阅读排行:
· 用c#从头写一个AI agent,实现企业内部自然语言数据统计分析
· 三维装箱问题(3D Bin Packing Problem, 3D-BPP)
· Windows上,10分钟构建一个本地知识库
· 使用 AOT 编译保护 .NET 核心逻辑,同时支持第三方扩展
· Java虚拟机代码是如何一步一步变复杂且难以理解的?

导航

< 2025年4月 >
30 31 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 1 2 3
4 5 6 7 8 9 10

统计

点击右上角即可分享
微信分享提示