Files
goalfylearning-admin/internal/storage/README.md

83 lines
1.7 KiB
Markdown

# 存储层
本模块负责数据访问层的实现,提供数据库操作接口。
## 功能特性
- 统一的数据库连接管理
- 自动数据库迁移
- 接口化的数据访问层
- 支持分页查询
- 支持条件查询
## 模块结构
```
storage/
├── database.go # 数据库连接和迁移
├── user_storage.go # 用户数据访问
├── role_storage.go # 角色数据访问
├── menu_storage.go # 菜单数据访问
├── log_storage.go # 日志数据访问
└── README.md # 说明文档
```
## 使用方法
### 初始化数据库
```go
// 初始化数据库连接
err := storage.InitDatabase()
if err != nil {
log.Fatal(err)
}
// 自动迁移数据库表
err = storage.AutoMigrate()
if err != nil {
log.Fatal(err)
}
```
### 使用存储接口
```go
// 创建用户存储实例
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` - 最大打开连接数