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

Posted 51reboot运维开发

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一分钟上手, 让 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(100, func(data []map[string]interface{}){
   for _, item := range data {
       fmt.Println(item["name"])
   }
})


风骚八 


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


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


本文来自:segmenfault

原文链接:https://segmentfault.com/a/1190000012843660


【51Reboot】Golang 班第 3 期火热招生中

Golang 技术交流群 426585602


咨询报名联系

QQ(1):979950755    小月   

QQ(2):279312229    ada   

WeChat : 1902433859   小月

WeChat : 1251743084   小单


点击【阅读原文】即可跳转

以上是关于一分钟上手, 让 Golang 操作数据库成为一种享受的主要内容,如果未能解决你的问题,请参考以下文章

三分钟 mongodb 开发快速上手

基于Asp.net core + EF + Sqlite 5分钟快速上手一个小项目

麻雀虽小,五脏俱全。基于Asp.net core + Sqlite 5分钟快速上手一个小项目

[新星计划] Python数据类型(下) | 10分钟,轻松上手Python列表操作

对Docker了解多少?10分钟带你从入门操作到实战上手

都9102年了,还不会Docker?10分钟带你从入门操作到实战上手