30 lines
823 B
Go
30 lines
823 B
Go
// Package db 提供统一的数据存储接口
|
|
// 定义存储接口规范,支持多种存储后端实现
|
|
// 当前支持PostgreSQL实现
|
|
package db
|
|
|
|
import (
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
// Storage 代表统一的存储接口
|
|
// 所有存储实现都需要实现此接口定义的方法
|
|
type Storage interface {
|
|
// Connect 建立与存储后端的连接
|
|
Connect() error
|
|
|
|
// Disconnect 断开与存储后端的连接
|
|
Disconnect() error
|
|
|
|
// GetDB 获取数据库实例
|
|
GetDB() *gorm.DB
|
|
}
|
|
|
|
// NewStorage 创建并返回一个存储实例
|
|
// 根据配置返回相应的存储实现
|
|
func NewStorage(connectionString string, maxOpenConns, maxIdleConns, connMaxLifetime int) Storage {
|
|
// 当前默认返回PostgreSQL存储实现
|
|
s := NewPostgresStorage(connectionString, maxOpenConns, maxIdleConns, connMaxLifetime)
|
|
return s
|
|
}
|