# 存储层 本模块负责数据访问层的实现,提供数据库操作接口。 ## 功能特性 - 统一的数据库连接管理 - 自动数据库迁移 - 接口化的数据访问层 - 支持分页查询 - 支持条件查询 ## 模块结构 ``` 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` - 最大打开连接数