从此篇文章开始,我们来陆续介绍
go-zero
开发一个项目所需要的组件和开发实践。
首先我们从 model
层开始,来说说go-zero
的API以及封装细节。首先 model
层连接的API集中在core/stores
。我们先来看看操作 mysql
这类数据库,API方法我们来到 core/stores/sqlx
,所以接下来用几篇的文章总体介绍一下 sqlx
的使用和设计思想。
快速使用
func main() {
// 1
const datasource = "user:password@/dbname"
mysqlDB := sqlx.NewMysql(datasource)
// 2
um := model.NewUserModel(mysqlDB,"User")
// 3
ul := logic.NewUserLogic(um)
// 4
engine.AddRoutes(nginxApi(ul))
engine.Start()
}
// NewUserModel,NewUserLogic 类似
func NewUserModel(conn sqlx.SqlConn, table string) *UserModel {
return &UserModel{conn: conn, table: table}
}
// nginxApi将logic注入到handle,同时绑定路由和handler
func nginxApi(ul *logic.UserLogic) []rest.Route {
return []rest.Route{