一個輔助運算元據庫的go lib[from滴滴]
github地址: gendry
gendry是一個非常簡單易用的sql builder,比如構建sql語句:
where := map[string]interface{}{
"city in": []interface{}{"beijing", "shanghai"},
"score": 5,
"age >": 35,
"_orderby": "bonus desc",
"_grouoby": "department",
}
table := "some_table"
selectFields := []string{"name", "age", "sex"}
cond, values, err := builder.BuildSelect(table, where, selectFields)
rows,err := db.Query(cond, vals...) // db: *sql.DB
//cond = SELECT name,age,sex FROM g_xxx WHERE (city IN (?,?) AND score=? AND age>?) GROUP BY department ORDER BY bonus DESC
//values = []interface{}{"beijing", "shanghai", 5, 35}
讀取返回:
type Person struct {
Name string `json:"name"`
Age int `json:"m_age"`
}
rows,err := db.Query("SELECT age as m_age,name from g_xxx where xxx")
defer rows.Close()
var students []Person
scanner.Scan(rows, &students)
gendry最開始是我在滴滴的一個對外介面服務中使用,經過一年多的迭代和多個線上系統大流量的驗證,已經非常穩定了。gendry的一個顯著特點是非侵入性,只要你的專案目前使用的是標準庫,那你就可以無痛新增gendry,大多數時候它就是一個helper函式。如果你不想用,一行程式碼就可以去掉,不會像orm一樣牽一髮動全身。gendry還提供了一個cli工具可以根據資料庫表結構自動生成該表對應的結構體和對該表的增刪改查的dao層程式碼。
gendry是個很簡單的lib,期待大家的使用和意見,熱烈歡迎各種pr
這裡簡要地寫了一下我們為什麼會開發這個lib: https://github.com/didi/gendry/wiki" title="為什麼開發gendry">為什麼開發gendry
相關文章
- Go語言運算元據庫Go
- go 語言運算元據庫 CRUDGo
- 運算元據庫
- 運算元據庫表
- yii運算元據庫
- Mysqli運算元據庫MySql
- DDL:運算元據庫
- jmeter運算元據庫JMeter
- Go語言運算元據庫及其常規操作Go
- 寫一個main程式,運算元據庫的一些操作AI
- ecshop運算元據庫類
- PHP mysqli 運算元據庫PHPMySql
- 利用 Sequelize 來運算元據庫
- java 運算元據庫備份Java
- Python運算元據庫(3)Python
- perl協程運算元據庫
- 求助 liferay運算元據庫
- Python學習:運算元據庫Python
- Django在Ubuntu下運算元據庫DjangoUbuntu
- JDBC運算元據庫基本步驟JDBC
- 非常有用的jdbc的運算元據庫JDBC
- 使用WordPress中的wpdb類運算元據庫
- [python] 基於Dataset庫運算元據庫Python
- Android中使用LitePal運算元據庫Android
- 資料庫誤運算元據恢復資料庫
- 肖sir__jmeter之運算元據庫JMeter
- MySQL DML運算元據MySql
- python運算元據Python
- 一文快速回顧 Java 運算元據庫的方式-JDBCJavaJDBC
- lavavel 中運算元據庫查詢別名
- 教你如何用python運算元據庫mysql!!PythonMySql
- ASP.Net中用DataGrid運算元據庫ASP.NET
- Oracle OCP(10):運算元據Oracle
- JAVA 使用雜湊表運算元據庫的例子 Using Hashtables to Store & Extract results from a Database. (轉)JavaDatabase
- 如何讓Designer更好地運算元據庫物件物件
- 利用javaBean運算元據庫表及其子段 (轉)JavaBean
- uniapp單機軟體運算元據庫(安卓)APP安卓
- python運算元據庫,批量插入資料庫資料Python資料庫