摘要:最風(fēng)騷的擁有鏈?zhǔn)讲僮鏖_箱即用一分鐘上手等八大風(fēng)騷讓操作數(shù)據(jù)庫成為一種享受媽媽再也看不到我處理數(shù)據(jù)的痛苦了下面就讓我一一講解的風(fēng)情風(fēng)騷一開箱即用一分鐘上手這里是配置文件中的數(shù)據(jù)庫配置原生執(zhí)行返回格式化后的結(jié)果風(fēng)騷二鏈?zhǔn)讲僮鞅M顯嫵媚之姿風(fēng)騷三直
gorose, 最風(fēng)騷的go orm, 擁有鏈?zhǔn)讲僮? 開箱即用, 一分鐘上手等八大風(fēng)騷, 讓golang操作數(shù)據(jù)庫成為一種享受, 媽媽再也看不到我處理數(shù)據(jù)的痛苦了, 下面就讓我一一講解gorose的風(fēng)情
風(fēng)騷一 : 開箱即用, 一分鐘上手db,_ := gorose.Open("xxxxxx這里是配置文件中的數(shù)據(jù)庫配置") db.Query("select * from user") // 原生sql執(zhí)行, 返回格式化后的結(jié)果風(fēng)騷二 : 鏈?zhǔn)讲僮? 盡顯嫵媚之姿
db.Table("user").First()
get sql : select * from user where id=1
風(fēng)騷三 : 直接查詢想要的字段, 無需預(yù)先聲明字段類型db.Table("user").Fields("id as uid,name").Where("id", ">", 1).Get()
同時(shí)支持傳入struct查詢
type userInfo struct { Name string `orm:"name"` } var user userInfo var users []userInfo db.Table(&user).Select() db.Table(&users).Limit(10).Select()風(fēng)騷四 : 無感知讀寫分離集群,連接池支持
// 從庫配置 var DbConfigSalve = &gorose.DbConfigSingle{ Driver: "mysql", // 驅(qū)動(dòng): mysql/sqlite/oracle/mssql/postgres EnableQueryLog: false, // 是否開啟sql日志 SetMaxOpenConns: 0, // (連接池)最大打開的連接數(shù),默認(rèn)值為0表示不限制 SetMaxIdleConns: 0, // (連接池)閑置的連接數(shù) Prefix: "", // 表前綴 Dsn: "root:root(localhost:3306)/test?charset=utf8", // 數(shù)據(jù)庫鏈接 } // 主庫配置 var DbConfigMaster = &gorose.DbConfigSingle{ Driver: "mysql", // 驅(qū)動(dòng): mysql/sqlite/oracle/mssql/postgres EnableQueryLog: true, // 是否開啟sql日志 SetMaxOpenConns: 0, // (連接池)最大打開的連接數(shù),默認(rèn)值為0表示不限制 SetMaxIdleConns: 0, // (連接池)閑置的連接數(shù) Prefix: "", // 表前綴 Dsn: "root:root(localhost:3306)/test?charset=utf8", // 數(shù)據(jù)庫鏈接 } // 集群配置,一主多從, 可以放入很多個(gè)從庫配置 var DbConfCluster = &gorose.DbConfigCluster{ Master: DbConfigMaster, Slave: []*gorose.DbConfigSingle{ DbConfigSalve, }, }風(fēng)騷五 : 一鍵處理事務(wù), 全自動(dòng) 啟動(dòng)/回滾/提交 事務(wù), 我只需專注于代碼本身
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() })風(fēng)騷六 : 聚合查詢, 常規(guī)查詢等, 統(tǒng)統(tǒng)一行搞定
user := db.Table("users") user.Count() user.Where("id","<", 10).Get() user.Where("len(name)>5").First()風(fēng)騷七 : 大量數(shù)據(jù)自動(dòng)分塊處理, 我還是只需要專注于代碼本身
user表中的所有數(shù)據(jù), 我每次取出100條, 然后處理完, 自動(dòng)取下一個(gè)100條, 繼續(xù)處理, 如此反復(fù), 直到處理完指定條件的數(shù)據(jù)
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"]) } })風(fēng)騷八 : 復(fù)雜嵌套where查詢, 只需要一個(gè)簡單的閉包搞定
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()更多風(fēng)騷之處
請看 https://github.com/gohouse/gorose
或者 點(diǎn)擊加入qq群: 470809220 慢慢撩~~~
powered by fizzday(星期八)
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/17672.html
摘要:最近迷戀上了語言對有種特別的好感可是由于之前做了很久的開發(fā)剛開始用做開發(fā)有點(diǎn)不太習(xí)慣也許是之前的框架的過于好用所以導(dǎo)致了使用做開發(fā)的各種不適應(yīng)于是想著找一個(gè)類似的用用找遍了生態(tài)圈發(fā)現(xiàn)了很多知名的諸如等發(fā)現(xiàn)沒有一個(gè)是我的在體驗(yàn)了百般不爽之于痛 最近迷戀上了go語言, 對go有種特別的好感. 可是, 由于之前做了很久的php開發(fā), 剛開始用go做web開發(fā)有點(diǎn)不太習(xí)慣, 也許是之前的 ...
摘要:網(wǎng)站功能結(jié)構(gòu)規(guī)劃和基礎(chǔ)服務(wù)安裝為了快速的構(gòu)建一個(gè)網(wǎng)站在這里我們采用飛哥的組件和的框架來做網(wǎng)站實(shí)戰(zhàn)首先我們需要做出一些基礎(chǔ)的規(guī)劃萬丈高樓平地起我們先來給他打下地基做一下簡單的模塊和基本的網(wǎng)站要素規(guī)劃一網(wǎng)站名字快新聞?lì)櫭剂x就是要做到盡量簡短一 網(wǎng)站功能結(jié)構(gòu)規(guī)劃和基礎(chǔ)服務(wù)安裝 為了快速的構(gòu)建一個(gè)go web網(wǎng)站, 在這里, 我們采用 飛哥(fizzday) 的 gorose orm 組件和...
閱讀 2277·2021-11-17 09:33
閱讀 2804·2021-11-12 10:36
閱讀 3434·2021-09-27 13:47
閱讀 922·2021-09-22 15:10
閱讀 3529·2021-09-09 11:51
閱讀 1441·2021-08-25 09:38
閱讀 2782·2019-08-30 15:55
閱讀 2640·2019-08-30 15:53