minidal

package
v0.1.1 Latest Latest
Warning

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

Go to latest
Published: Jun 10, 2023 License: GPL-3.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CopyFieldsToNewStruct added in v0.1.0

func CopyFieldsToNewStruct(structType interface{}, object Object) (interface{}, error)

Types

type DB added in v0.1.0

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

func NewDB added in v0.1.0

func NewDB(driver Driver, uri DataSource) DB

func (*DB) Close added in v0.1.0

func (dal *DB) Close()

func (DB) Connect added in v0.1.0

func (dal DB) Connect() (DB, error)

func (DB) Exec added in v0.1.0

func (dal DB) Exec(query string, values ...[]any) (sql.Result, error)

func (DB) Model added in v0.1.0

func (dal DB) Model(options ...any) Model

func (DB) Query added in v0.1.0

func (dal DB) Query(query string, values ...any) ([]Object, error)

func (DB) Tx added in v0.1.0

func (dal DB) Tx(ctx context.Context, qFn func(t *sql.Tx) (any, error)) (any, error)

type DataSource added in v0.1.0

type DataSource string

type Driver

type Driver string
const (
	SQLite Driver = "sqlite3" // tested with "github.com/mattn/go-sqlite3"
	MySQL  Driver = "mysql"   // tested with "github.com/go-sql-driver/mysql"
)

type FieldBinding

type FieldBinding struct {
	sync.RWMutex // embedded.  see http://golang.org/ref/spec#Struct_types
	FieldArr     []interface{}
	FieldPtrArr  []interface{}
	FieldCount   int64
	MapFieldToID map[string]int64
}

FieldBinding is deisgned for SQL rows.Scan() query.

func NewFieldBinding

func NewFieldBinding() *FieldBinding

NewFieldBinding ...

func (*FieldBinding) Get

func (fb *FieldBinding) Get(k string) interface{}

Get ...

func (*FieldBinding) GetFieldArr

func (fb *FieldBinding) GetFieldArr() map[string]interface{}

GetFieldArr ...

func (*FieldBinding) GetFieldPtrArr

func (fb *FieldBinding) GetFieldPtrArr() []interface{}

GetFieldPtrArr ...

func (*FieldBinding) PutFields

func (fb *FieldBinding) PutFields(fArr []string)

PutFields ...

type GlueOperator added in v0.1.0

type GlueOperator string
const (
	AND GlueOperator = "AND"
	OR  GlueOperator = "OR"
)

type IDB added in v0.1.0

type IDB interface {
	Model(options ...any) (IModel, error)

	Connect() (DB, error)
	Close() error
	Exec(query string, values ...[]any) (sql.Result, error)
	Query(query string, values ...any) ([]Object, error)
	Tx()
}

type IModel

type IModel interface {
	Insert(data Object) (int, error)
	InsertBulk(data ...Object) (Object, error)
	Update(where Object, data Object) (int, error)
	Delete(where Object) (int, error)
	Find(where Object) ([]*Object, error)
	First(where Object) (Object, error)
}

type ISerializer added in v0.1.0

type ISerializer interface {
	New() interface{}
}

type Model

type Model struct {
	DAL DB
	// contains filtered or unexported fields
}

func (Model) Delete

func (m Model) Delete(where Object, or ...bool) (int64, error)

func (*Model) Deserialize added in v0.1.0

func (m *Model) Deserialize(os ...Object) (any, error)

func (Model) Find

func (m Model) Find(args ...any) (interface{}, error)

func (Model) First

func (m Model) First(where Object, or ...bool) (any, error)

func (Model) Insert

func (m Model) Insert(data Object) (int64, error)

func (Model) InsertBulk

func (m Model) InsertBulk(data ...Object) (Object, error)

func (Model) Update

func (m Model) Update(where Object, data Object, or ...bool) (int64, error)

type Object

type Object map[string]interface{}

func (Object) New added in v0.1.0

func (t Object) New() interface{}

type SortOrder

type SortOrder string
const (
	ASC  SortOrder = "ASC"
	DESC SortOrder = "DESC"
)

Jump to

Keyboard shortcuts

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