资讯专栏INFORMATION COLUMN

gorose-最风骚的golang orm,链式操作, 开箱即用, 一分钟上手, 让golang操作

JayChen / 496人阅读

摘要:最风骚的拥有链式操作开箱即用一分钟上手等八大风骚让操作数据库成为一种享受妈妈再也看不到我处理数据的痛苦了下面就让我一一讲解的风情风骚一开箱即用一分钟上手这里是配置文件中的数据库配置原生执行返回格式化后的结果风骚二链式操作尽显妩媚之姿风骚三直

gorose, 最风骚的go orm, 拥有链式操作, 开箱即用, 一分钟上手等八大风骚, 让golang操作数据库成为一种享受, 妈妈再也看不到我处理数据的痛苦了, 下面就让我一一讲解gorose的风情

风骚一 : 开箱即用, 一分钟上手
db,_ := gorose.Open("xxxxxx这里是配置文件中的数据库配置")

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()

同时支持传入struct查询

type userInfo struct {
    Name string `orm:"name"`
}
var user userInfo
var users []userInfo
db.Table(&user).Select()
db.Table(&users).Limit(10).Select()
风骚四 : 无感知读写分离集群,连接池支持
// 从库配置
var DbConfigSalve = &gorose.DbConfigSingle{
    Driver:          "mysql",                    // 驱动: mysql/sqlite/oracle/mssql/postgres
    EnableQueryLog:  false,                      // 是否开启sql日志
    SetMaxOpenConns: 0,                          // (连接池)最大打开的连接数,默认值为0表示不限制
    SetMaxIdleConns: 0,                          // (连接池)闲置的连接数
    Prefix:          "",                         // 表前缀
    Dsn:             "root:root(localhost:3306)/test?charset=utf8", // 数据库链接
}
// 主库配置
var DbConfigMaster = &gorose.DbConfigSingle{
    Driver:          "mysql",                    // 驱动: mysql/sqlite/oracle/mssql/postgres
    EnableQueryLog:  true,                       // 是否开启sql日志
    SetMaxOpenConns: 0,                          // (连接池)最大打开的连接数,默认值为0表示不限制
    SetMaxIdleConns: 0,                          // (连接池)闲置的连接数
    Prefix:          "",                         // 表前缀
    Dsn:             "root:root(localhost:3306)/test?charset=utf8", // 数据库链接
}
// 集群配置,一主多从, 可以放入很多个从库配置
var DbConfCluster = &gorose.DbConfigCluster{
    Master: DbConfigMaster,
    Slave:  []*gorose.DbConfigSingle{
        DbConfigSalve,
    },
}
风骚五 : 一键处理事务, 全自动 启动/回滚/提交 事务, 我只需专注于代码本身
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()
})
风骚六 : 聚合查询, 常规查询等, 统统一行搞定
user := db.Table("users")
user.Count()
user.Where("id","<", 10).Get()
user.Where("len(name)>5").First()
风骚七 : 大量数据自动分块处理, 我还是只需要专注于代码本身

user表中的所有数据, 我每次取出100条, 然后处理完, 自动取下一个100条, 继续处理, 如此反复, 直到处理完指定条件的数据

db.Table("users").Fields("id, name").Where("id", ">", 2).Chunk(100, func(data []map[string]interface{}) {
        fmt.Println(data)
        for _, item := range data {
            fmt.Println(item["id"], item["name"])
        }
    })
风骚八 : 复杂嵌套where查询, 只需要一个简单的闭包搞定
user, err := Users.Where("id", ">", 1).Where(func() {
        Users.Where("name", "fizz").OrWhere(func() {
            Users.Where("name", "fizz2").Where(func() {
                Users.Where("name", "fizz3").OrWhere("website", "fizzday")
            })
        })
    }).Where("job", "it").First()
更多风骚之处

请看 https://github.com/gohouse/gorose

或者 点击加入qq群: 470809220 慢慢撩~~~


powered by fizzday(星期八)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/17672.html

相关文章

  • gorose-风骚golang orm,链式操作, 开箱即用, 分钟上手, golang操作

    摘要:最风骚的拥有链式操作开箱即用一分钟上手等八大风骚让操作数据库成为一种享受妈妈再也看不到我处理数据的痛苦了下面就让我一一讲解的风情风骚一开箱即用一分钟上手这里是配置文件中的数据库配置原生执行返回格式化后的结果风骚二链式操作尽显妩媚之姿风骚三直 gorose, 最风骚的go orm, 拥有链式操作, 开箱即用, 一分钟上手等八大风骚, 让golang操作数据库成为一种享受, 妈妈再也看不到...

    renweihub 评论0 收藏0
  • golang ormgorose 2.0版本正式发布

    摘要:关于最风骚的版本的经过几个月的重构和打磨再加上近一个月的预览版测试和改进正式版终于与我们见面了新版本做出了重大改动和升级完全重构了基础架构和实现方式下面我们一起来看看的特点吧特点全新架构采用模块化分离架构主要分为大模块初始化和数据库链接配置 关于gorose 2.0 gorose, 最风骚的golang orm, php版本的laravel eloquent. 经过几个月的重构和打磨...

    android_c 评论0 收藏0
  • php开发者快速上手go之使用gorose orm

    摘要:最近迷恋上了语言对有种特别的好感可是由于之前做了很久的开发刚开始用做开发有点不太习惯也许是之前的框架的过于好用所以导致了使用做开发的各种不适应于是想着找一个类似的用用找遍了生态圈发现了很多知名的诸如等发现没有一个是我的在体验了百般不爽之于痛 最近迷恋上了go语言, 对go有种特别的好感. 可是, 由于之前做了很久的php开发, 刚开始用go做web开发有点不太习惯, 也许是之前的 ...

    khs1994 评论0 收藏0
  • gorose orm+dotweb框架快速构建go web网站实战()

    摘要:网站功能结构规划和基础服务安装为了快速的构建一个网站在这里我们采用飞哥的组件和的框架来做网站实战首先我们需要做出一些基础的规划万丈高楼平地起我们先来给他打下地基做一下简单的模块和基本的网站要素规划一网站名字快新闻顾名思义就是要做到尽量简短一 网站功能结构规划和基础服务安装 为了快速的构建一个go web网站, 在这里, 我们采用 飞哥(fizzday) 的 gorose orm 组件和...

    nanchen2251 评论0 收藏0
  • go语言ormgorose全新版本2.0低调发布

    摘要:号称语言版本的发布了久违了版本新版本做了很大的改进和升级下面我们一起来看一下新版本的特性架构调整版本做了彻底的重构拥有全新的架构架构如图采用模块化架构通过的通信严格的上层依赖下层每一个模块都可以拆卸甚至可以自定义为自己喜欢的样子主模块初始化 号称go语言版本的laravels eloquent, 发布了久违了2.0版本, 新版本做了很大的改进和升级, 下面我们一起来看一下新版本的特性....

    wua_wua2012 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<