zoukankan      html  css  js  c++  java
  • 一分钟上手, 让 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

  • 相关阅读:
    HDOJ 4259 Double Dealing
    第三课 MongoDB 数据更新
    百度语音识别API初探
    几种常见排序算法的java实现
    HDU 1051 Wooden Sticks 贪心题解
    离线安装Cloudera Manager5.3.4与CDH5.3.4
    Unix哲学
    如何在管理层变动中存活下来
    SWTError: No more handles [gtk_init_check() failed] running platform tests (on Linux)
    "xxadmin" user: No protocol specified 错误
  • 原文地址:https://www.cnblogs.com/276815076/p/8304240.html
Copyright © 2011-2022 走看看