摘要:最風騷的擁有鏈式操作開箱即用一分鐘上手等八大風騷讓操作數據庫成為一種享受媽媽再也看不到我處理數據的痛苦了下面就讓我一一講解的風情風騷一開箱即用一分鐘上手這里是配置文件中的數據庫配置原生執行返回格式化后的結果風騷二鏈式操作盡顯嫵媚之姿風騷三直
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(星期八)
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/17672.html
摘要:最近迷戀上了語言對有種特別的好感可是由于之前做了很久的開發剛開始用做開發有點不太習慣也許是之前的框架的過于好用所以導致了使用做開發的各種不適應于是想著找一個類似的用用找遍了生態圈發現了很多知名的諸如等發現沒有一個是我的在體驗了百般不爽之于痛 最近迷戀上了go語言, 對go有種特別的好感. 可是, 由于之前做了很久的php開發, 剛開始用go做web開發有點不太習慣, 也許是之前的 ...
摘要:網站功能結構規劃和基礎服務安裝為了快速的構建一個網站在這里我們采用飛哥的組件和的框架來做網站實戰首先我們需要做出一些基礎的規劃萬丈高樓平地起我們先來給他打下地基做一下簡單的模塊和基本的網站要素規劃一網站名字快新聞顧名思義就是要做到盡量簡短一 網站功能結構規劃和基礎服務安裝 為了快速的構建一個go web網站, 在這里, 我們采用 飛哥(fizzday) 的 gorose orm 組件和...
閱讀 2234·2021-11-17 09:33
閱讀 2774·2021-11-12 10:36
閱讀 3395·2021-09-27 13:47
閱讀 884·2021-09-22 15:10
閱讀 3485·2021-09-09 11:51
閱讀 1392·2021-08-25 09:38
閱讀 2757·2019-08-30 15:55
閱讀 2608·2019-08-30 15:53