gorose, 最風騷的go orm, 擁有鏈式操做, 開箱即用, 一分鐘上手等八大風騷, 讓golang操做數據庫成爲一種享受, 媽媽再也看不到我處理數據的痛苦了, 下面就讓我一一講解gorose的風情mysql
db,_ := gorose.Open("xxxxxx這裏是配置文件中的數據庫配置") db.Query("select * from user") // 原生sql執行, 返回格式化後的結果
db.Table("user").First()
get sql : select * from user where id=1
git
db.Table("user").Fields("id as uid,name").Where("id", ">", 1).Get()
同時支持傳入struct
查詢github
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條, 繼續處理, 如此反覆, 直處處理完指定條件的數據golang
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"]) } })
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()
powered by fizzday(星期八)web