model 程式碼生成 與 依賴注入
本文需要介紹 gotools 工具
需要使用的工具命令:
gotools grom -h
程式碼地址:github.com/wuyan94zl/gotools
建立檔案:models/user.sql
CREATE TABLE `users`
(
`id` int(11) NOT NULL,
`nickname` varchar(255) NOT NULL COMMENT '使用者暱稱',
`login_id` varchar(255) NOT NULL COMMENT '登入ID',
`password` varchar(255) NOT NULL COMMENT '登入密碼',
`head_img` varchar(255) NOT NULL COMMENT '使用者頭像',
`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
生成 model 程式碼
進入models資料夾:cd models
執行:gotools gorm --src user.sql --dir user --cache false
生成目錄結構(程式碼基於 gorm + mysql + redis) –cache 為 true 時使用redis做快取代理
models
|-- user
|-- model.go
|-- model_gen.go
|-- user.sql
model 依賴注入,修改container.go
修改: container/container.go
package container
import (
"github.com/go-redis/redis/v9"
"gorm.io/gorm"
"github.com/wuyan94zl/example-api/models/user" // 增加程式碼
)
type Config struct {
DB GormConfig
Redis RedisConfig
}
type Container struct {
DB *gorm.DB
Redis *redis.Client
UserModel user.UsersModel // 增加程式碼
}
func NewContainer(c Config) {
dbConn, redisConn := dbConn(c.DB), redisConn(c.Redis)
container = &Container{
DB: dbConn,
Redis: redisConn,
UserModel: user.NewUsersModel(dbConn), // 增加程式碼
}
}
下一篇,介面註冊實現
本作品採用《CC 協議》,轉載必須註明作者和本文連結