存储层
本模块负责数据访问层的实现,提供数据库操作接口。
功能特性
- 统一的数据库连接管理
- 自动数据库迁移
- 接口化的数据访问层
- 支持分页查询
- 支持条件查询
模块结构
storage/
├── database.go # 数据库连接和迁移
├── user_storage.go # 用户数据访问
├── role_storage.go # 角色数据访问
├── menu_storage.go # 菜单数据访问
├── log_storage.go # 日志数据访问
└── README.md # 说明文档
使用方法
初始化数据库
// 初始化数据库连接
err := storage.InitDatabase()
if err != nil {
log.Fatal(err)
}
// 自动迁移数据库表
err = storage.AutoMigrate()
if err != nil {
log.Fatal(err)
}
使用存储接口
// 创建用户存储实例
userStorage := storage.NewUserStorage()
// 创建用户
user := &models.User{
Username: "admin",
Email: "admin@example.com",
Password: "password",
}
err := userStorage.Create(user)
// 获取用户列表
req := &models.UserListRequest{
PageRequest: models.PageRequest{Page: 1, Size: 10},
Username: "admin",
}
users, total, err := userStorage.List(req)
接口设计
所有存储接口都遵循统一的模式:
Create()- 创建记录GetByID()- 根据ID获取记录Update()- 更新记录Delete()- 删除记录List()- 获取列表(支持分页和条件查询)
数据库配置
数据库配置通过配置文件进行管理,支持以下配置项:
dsn- 数据库连接字符串maxIdleConns- 最大空闲连接数maxOpenConns- 最大打开连接数