Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ( ErrNotFound = errors.New("record not found") ErrAlreadyExists = errors.New("record already exists") ErrInvalidInput = errors.New("invalid input") ErrNotImplemented = errors.New("not implemented") ErrNoDatabase = errors.New("no database connection") )
Common database errors
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct {
Type string
Host string
Port int
User string
Password string
Name string
// Connection pool settings
MaxOpenConns int
MaxIdleConns int
ConnMaxLifetime time.Duration
ConnMaxIdleTime time.Duration
}
Config represents database connection configuration
func (*Config) SetDefaults ¶
func (c *Config) SetDefaults()
SetDefaults sets default values for the configuration if they are not set
type Database ¶
type Database interface {
// Core database operations
Query(ctx context.Context, query string, args ...interface{}) (*sql.Rows, error)
QueryRow(ctx context.Context, query string, args ...interface{}) *sql.Row
Exec(ctx context.Context, query string, args ...interface{}) (sql.Result, error)
// Transaction support
BeginTx(ctx context.Context, opts *sql.TxOptions) (*sql.Tx, error)
// Connection management
Connect() error
Close() error
Ping(ctx context.Context) error
// Metadata
DriverName() string
ConnectionString() string
// DB object access (for specific DB operations)
DB() *sql.DB
}
Database represents a generic database interface
func NewDatabase ¶
NewDatabase creates a new database connection based on the provided configuration
type DatabaseConnectionConfig ¶ added in v1.3.0
type DatabaseConnectionConfig struct {
ID string `json:"id"` // Unique identifier for this connection
Type string `json:"type"` // mysql or postgres
Host string `json:"host"`
Port int `json:"port"`
User string `json:"user"`
Password string `json:"password"`
Name string `json:"name"`
}
DatabaseConnectionConfig represents a single database connection configuration
type Manager ¶ added in v1.3.0
type Manager struct {
// contains filtered or unexported fields
}
Manager manages multiple database connections
func NewDBManager ¶ added in v1.3.0
func NewDBManager() *Manager
NewDBManager creates a new database manager
func (*Manager) Connect ¶ added in v1.3.0
Connect establishes connections to all configured databases
func (*Manager) ListDatabases ¶ added in v1.3.0
ListDatabases returns a list of all available database connections
func (*Manager) LoadConfig ¶ added in v1.3.0
LoadConfig loads database configurations from JSON
type MultiDBConfig ¶ added in v1.3.0
type MultiDBConfig struct {
Connections []DatabaseConnectionConfig `json:"connections"`
}
MultiDBConfig represents the configuration for multiple database connections