cDB

package module
v0.4.0-dev Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 22, 2024 License: MIT Imports: 13 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

View Source
var Component = &DBComponent{}

Functions

func AddConnection added in v0.4.0

func AddConnection(ctx *gin.Context, name string, connection DriverInterface) error

func WithConnectionModel added in v0.0.52

func WithConnectionModel(ctx *gin.Context, model ModelInterface, name string) *gorm.DB

func WithContextModel added in v0.0.52

func WithContextModel(ctx *gin.Context, model ModelInterface) *gorm.DB

Types

type ConnectorInterface

type ConnectorInterface interface {
	GetConnection() string
	GetDriver() DriverInterface
	GetDB() *gorm.DB

	Connect() error
}

type DBComponent added in v0.3.2

type DBComponent struct{}

func (*DBComponent) Inject added in v0.3.2

func (i *DBComponent) Inject(instance any) bool

func (*DBComponent) InjectConf added in v0.4.0

func (i *DBComponent) InjectConf(config cComponents.ConfigInterface) bool

func (*DBComponent) Listen added in v0.4.0

func (i *DBComponent) Listen() []*cComponents.ConfigListener

func (*DBComponent) Load added in v0.3.2

func (i *DBComponent) Load()

type DBContainer added in v0.4.0

type DBContainer struct {
	// contains filtered or unexported fields
}

func (*DBContainer) Get added in v0.4.0

func (i *DBContainer) Get(name string) any

func (*DBContainer) GetConnector added in v0.4.0

func (i *DBContainer) GetConnector(name string) ConnectorInterface

func (*DBContainer) Is added in v0.4.0

func (i *DBContainer) Is(instance any) bool

func (*DBContainer) Range added in v0.4.0

func (i *DBContainer) Range(f func(instance any))

func (*DBContainer) Remove added in v0.4.0

func (i *DBContainer) Remove(name string) bool

func (*DBContainer) Save added in v0.4.0

func (i *DBContainer) Save(instance any) bool

type DBDriver added in v0.4.0

type DBDriver string
const (
	DatabaseConfigName = "DatabaseConf"

	MysqlDriver  DBDriver = "mysql"
	SqliteDriver DBDriver = "sqlite"
)

type DatabaseConf

type DatabaseConf struct {
	MysqlConnections  map[string]*DatabaseConf_MySql  `json:"mysql_connections"`
	SqliteConnections map[string]*DatabaseConf_Sqlite `json:"sqlite_connections"`
}

func (*DatabaseConf) ConfigName

func (i *DatabaseConf) ConfigName() string

type DatabaseConf_MySql

type DatabaseConf_MySql struct {
	Driver      DBDriver                        `json:"driver"`
	Host        string                          `json:"host"`
	Port        int                             `json:"port"`
	Database    string                          `json:"database"`
	Username    string                          `json:"username"`
	Password    string                          `json:"password"`
	Charset     string                          `json:"charset"`
	Collation   string                          `json:"collation"`
	Prefix      string                          `json:"prefix"`
	Debug       bool                            `json:"debug"`
	Pool        *DatabaseConf_MySql_Pool        `json:"pool"`
	HealthCheck *DatabaseConf_MySql_HealthCheck `json:"health_check"`
}

func (*DatabaseConf_MySql) DriverName added in v0.4.0

func (i *DatabaseConf_MySql) DriverName() DBDriver

func (*DatabaseConf_MySql) IsDebug added in v0.4.0

func (i *DatabaseConf_MySql) IsDebug() bool

type DatabaseConf_MySql_HealthCheck

type DatabaseConf_MySql_HealthCheck struct {
	TableName string `json:"table_name"`
	Key       string `json:"key"`
}

type DatabaseConf_MySql_Pool

type DatabaseConf_MySql_Pool struct {
	MaxIdleConnections int `json:"max_idle_connections"`
	MaxConnections     int `json:"max_connections"`
	ConnectTimeout     int `json:"connect_timeout"`
	MaxIdleTime        int `json:"max_idle_time"`
}

type DatabaseConf_Sqlite added in v0.4.0

type DatabaseConf_Sqlite struct {
	Driver DBDriver `json:"driver"`
	File   string   `json:"file"`
	Debug  bool     `json:"debug"`
}

func (*DatabaseConf_Sqlite) DriverName added in v0.4.0

func (i *DatabaseConf_Sqlite) DriverName() DBDriver

func (*DatabaseConf_Sqlite) IsDebug added in v0.4.0

func (i *DatabaseConf_Sqlite) IsDebug() bool

type DriverInterface added in v0.4.0

type DriverInterface interface {
	DriverName() DBDriver
	IsDebug() bool
}

type ModelInterface

type ModelInterface interface {
	Connection(ctx *gin.Context) string
}

type MysqlConnector

type MysqlConnector struct {
	// contains filtered or unexported fields
}

func NewMysqlConnector added in v0.4.0

func NewMysqlConnector(connection string, config *DatabaseConf_MySql) (*MysqlConnector, error)

func (*MysqlConnector) Connect

func (i *MysqlConnector) Connect() error

func (*MysqlConnector) GetConnection added in v0.4.0

func (i *MysqlConnector) GetConnection() string

func (*MysqlConnector) GetDB added in v0.4.0

func (i *MysqlConnector) GetDB() *gorm.DB

func (*MysqlConnector) GetDriver added in v0.4.0

func (i *MysqlConnector) GetDriver() DriverInterface

type QueryDB added in v0.4.0

type QueryDB struct {
	// contains filtered or unexported fields
}

func WithQueryModel added in v0.4.0

func WithQueryModel(ctx *gin.Context, model ModelInterface) *QueryDB

func (*QueryDB) Paginate added in v0.4.0

func (i *QueryDB) Paginate(page, size int) *QueryDB

func (*QueryDB) Query added in v0.4.0

func (i *QueryDB) Query() *gorm.DB

func (*QueryDB) SetQuery added in v0.4.0

func (i *QueryDB) SetQuery(query *gorm.DB)

type SqliteConnector added in v0.4.0

type SqliteConnector struct {
	// contains filtered or unexported fields
}

func NewSqliteConnector added in v0.4.0

func NewSqliteConnector(connection string, config *DatabaseConf_Sqlite) (*SqliteConnector, error)

func (*SqliteConnector) Connect added in v0.4.0

func (i *SqliteConnector) Connect() error

func (*SqliteConnector) GetConnection added in v0.4.0

func (i *SqliteConnector) GetConnection() string

func (*SqliteConnector) GetDB added in v0.4.0

func (i *SqliteConnector) GetDB() *gorm.DB

func (*SqliteConnector) GetDriver added in v0.4.0

func (i *SqliteConnector) GetDriver() DriverInterface

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL