database

package
v0.0.0-...-82c6a1a Latest Latest
Warning

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

Go to latest
Published: Jan 12, 2023 License: MIT Imports: 3 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Collection

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

Collection - collection struct.

func NewCollection

func NewCollection(rs *sql.Rows, mg ModelGenerator) *Collection

NewCollection - instantiate new collection.

func (*Collection) Each

func (c *Collection) Each(h ModelHandler)

Each - walker over rows and applying handler.

type Column

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

Column - schema column struct.

func NewAutoColumn

func NewAutoColumn(name string, field any) Column

NewAutoColumn - instantiate new auto column.

func NewColumn

func NewColumn(name string, field any) Column

NewColumn - instantiate new column.

func (*Column) IsMutable

func (c *Column) IsMutable() bool

IsMutable - is mutable column?

type Config

type Config struct {
	Driver string
	Dsn    string
}

Config - config for database.

type Database

type Database struct {
	Conn *sql.DB
	// contains filtered or unexported fields
}

Database - custom database structure.

var Db *Database

Db - global database instance.

func NewDatabase

func NewDatabase(c *Config) *Database

NewDatabase - initialize new database.

func (*Database) Close

func (db *Database) Close()

Close - close database

func (*Database) NewQuery

func (db *Database) NewQuery(r IRepository) Query

NewQuery - create new query.

func (*Database) Open

func (db *Database) Open()

Open - open database

type IModel

type IModel interface {
	Schema() *Schema
}

IModel - database model interface.

type IRepository

type IRepository interface {
	ModelGenerator() ModelGenerator
}

IRepository - repository interface.

type Item

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

Item - item struct.

func NewItem

func NewItem(r *sql.Row, mg ModelGenerator) *Item

NewItem - instantiate new item.

func (*Item) One

func (i *Item) One(h ModelHandler)

One - applying handler for one row.

type ModelGenerator

type ModelGenerator func() IModel

ModelGenerator - model generator type.

type ModelHandler

type ModelHandler func(IModel)

ModelHandler - model handler type.

type Query

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

Query - query struct.

func NewQuery

func NewQuery(db *Database, mg ModelGenerator) Query

NewQuery - initialization function for query.

func (*Query) BuildInsert

func (q *Query) BuildInsert()

BuildInsert - build insert sql query.

func (*Query) BuildSelect

func (q *Query) BuildSelect()

BuildSelect - build select sql query.

func (*Query) BuildUpdate

func (q *Query) BuildUpdate()

BuildUpdate - build update sql query.

func (*Query) Insert

func (q *Query) Insert(m IModel) int64

Insert - execute insert one sql query.

func (*Query) Select

func (q *Query) Select(args ...any) *Item

Select - execute select one sql query.

func (*Query) SelectAll

func (q *Query) SelectAll() *Collection

SelectAll - execute select all sql query.

func (*Query) Update

func (q *Query) Update(id *int, m IModel)

Update - execute update one sql query.

func (*Query) Where

func (q *Query) Where(wc WhereCondition)

Where - adds where conditions to sql query.

type Repository

type Repository struct {
	Database *Database
}

Repository - abstract repository struct.

func (*Repository) NewQuery

func (r *Repository) NewQuery(cr IRepository) Query

NewQuery - instantiate new query.

type Schema

type Schema struct {
	// Table - table name in database.
	Table   string
	Columns []Column
}

Schema - schema struct.

func (*Schema) ResolveColumnFields

func (s *Schema) ResolveColumnFields() []any

ResolveColumnFields - resolve column fields.

func (*Schema) ResolveColumnNames

func (s *Schema) ResolveColumnNames() []string

ResolveColumnNames - resolve column names.

func (*Schema) ResolveMutableColumnFields

func (s *Schema) ResolveMutableColumnFields() []any

ResolveMutableColumnFields - resolve mutable column fields.

func (*Schema) ResolveMutableColumnNames

func (s *Schema) ResolveMutableColumnNames() []string

ResolveMutableColumnNames - resolve mutable column names.

type WhereCondition

type WhereCondition struct {
	Conditions []string
	Op         string
}

WhereCondition - where condition struct.

func (*WhereCondition) BuildWhere

func (wc *WhereCondition) BuildWhere() string

BuildWhere - build where expression

Jump to

Keyboard shortcuts

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