orm

package
v0.3.0 Latest Latest
Warning

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

Go to latest
Published: Jun 2, 2022 License: MIT Imports: 17 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CreateStructFromTable added in v0.2.0

func CreateStructFromTable[T Table](queryTable Query[T]) error

func CreateTableFromStruct added in v0.2.0

func CreateTableFromStruct[T Table](query Query[T]) (string, error)

func ErrorNotNil added in v0.3.0

func ErrorNotNil(errors ...error) error

func SetDefaults added in v0.2.1

func SetDefaults(table Table)

func SliceContain

func SliceContain(array interface{}, val interface{}) (index int)

Types

type JoinType

type JoinType string
const (
	JoinTypeInner JoinType = "join"
	JoinTypeLeft  JoinType = "left join"
	JoinTypeRight JoinType = "right join"
)

type JsonInt

type JsonInt int64

func (JsonInt) MarshalJSON

func (i JsonInt) MarshalJSON() ([]byte, error)

func (*JsonInt) Scan

func (i *JsonInt) Scan(v interface{}) error

func (JsonInt) ToString

func (i JsonInt) ToString() string

func (*JsonInt) UnmarshalJSON

func (i *JsonInt) UnmarshalJSON(data []byte) error

func (JsonInt) Value

func (i JsonInt) Value() (driver.Value, error)

type JsonTime

type JsonTime struct {
	time.Time
}

func (JsonTime) MarshalJSON

func (t JsonTime) MarshalJSON() ([]byte, error)

MarshalJSON on JsonTime format Time field with %Y-%m-%d %H:%M:%S

func (*JsonTime) Scan

func (t *JsonTime) Scan(v interface{}) error

Scan valueof time.Time

func (*JsonTime) UnmarshalJSON

func (t *JsonTime) UnmarshalJSON(data []byte) error

MarshalJSON on JsonTime format Time field with %Y-%m-%d %H:%M:%S

func (JsonTime) Value

func (t JsonTime) Value() (driver.Value, error)

Value insert timestamp into mysql need this function.

type Query

type Query[T Table] struct {
	T *T
	// contains filtered or unexported fields
}

func NewQuery added in v0.3.0

func NewQuery[T Table](t T, db *sql.DB) Query[T]

func (Query[T]) Alias added in v0.3.0

func (m Query[T]) Alias(alias string) Query[T]

func (Query[T]) AllCols added in v0.3.0

func (m Query[T]) AllCols() string

func (Query[T]) DB

func (m Query[T]) DB() *sql.DB

func (Query[T]) Delete

func (m Query[T]) Delete() QueryResult

func (Query[T]) Execute added in v0.3.0

func (m Query[T]) Execute() QueryResult

excute raw

func (Query[T]) FromTable

func (m Query[T]) FromTable(table Table, alias ...string) Query[T]

func (Query[T]) Get added in v0.3.0

func (m Query[T]) Get() (T, QueryResult)

get first T

func (Query[T]) GetCount added in v0.3.0

func (m Query[T]) GetCount() (int64, QueryResult)

get count T

func (Query[T]) GetRow added in v0.3.0

func (m Query[T]) GetRow() (map[string]interface{}, QueryResult)

get first row

func (Query[T]) GetRows added in v0.3.0

func (m Query[T]) GetRows() ([]map[string]interface{}, QueryResult)

get slice row

func (Query[T]) GetTo added in v0.3.0

func (m Query[T]) GetTo(destPtr interface{}) QueryResult

destPtr: *int | *int64 | *string | ... destPtr: *[]int | *[]string | ... destPtr: *struct | *[]struct destPtr: *map [int | string | ...] int | string ... destPtr: *map [int | string | ...] struct destPtr: *map [int | string | ...] []struct

func (Query[T]) Gets added in v0.3.0

func (m Query[T]) Gets() ([]T, QueryResult)

get slice T

func (Query[T]) GroupBy

func (m Query[T]) GroupBy(columns ...interface{}) Query[T]

should not use group by after order by

func (Query[T]) Having

func (m Query[T]) Having(column interface{}, vals ...interface{}) Query[T]

func (Query[T]) Insert

func (m Query[T]) Insert(data T, tableFieldAddrs ...interface{}) QueryResult

tableFieldAddrs: allow insert table columns

func (Query[T]) InsertSubquery added in v0.3.0

func (m Query[T]) InsertSubquery(data *SubQuery, tableFieldPtrs []interface{}, updates ...UpdateColumn) QueryResult

func (Query[T]) Inserts added in v0.3.0

func (m Query[T]) Inserts(data []T, tableFieldAddrs ...interface{}) QueryResult

tableFieldAddrs: allow insert table columns

func (Query[T]) InsertsIgnore added in v0.3.0

func (m Query[T]) InsertsIgnore(data []T, tableFieldPtrs []interface{}, updates ...UpdateColumn) QueryResult

insert ignore ... // on duplicate key update ...

func (Query[T]) Join

func (m Query[T]) Join(table Table, where func(join Query[T]) Query[T], alias ...string) Query[T]

func (Query[T]) LeftJoin

func (m Query[T]) LeftJoin(table Table, where func(join Query[T]) Query[T], alias ...string) Query[T]

func (Query[T]) Limit

func (m Query[T]) Limit(limit int) Query[T]

func (Query[T]) Offset

func (m Query[T]) Offset(offset int) Query[T]

func (Query[T]) OrWhere

func (m Query[T]) OrWhere(column interface{}, vals ...interface{}) Query[T]

"id=1" &obj.id, 1 &obj.id, "=", 1

func (Query[T]) OrWhereFunc added in v0.3.0

func (m Query[T]) OrWhereFunc(f func(Query[T]) Query[T]) Query[T]

"id=1" &obj.id, 1 &obj.id, "=", 1

func (Query[T]) OrderBy

func (m Query[T]) OrderBy(column interface{}) Query[T]

func (Query[T]) OrderByDesc

func (m Query[T]) OrderByDesc(column interface{}) Query[T]

func (Query[T]) Raw added in v0.3.0

func (m Query[T]) Raw(prepareSql string, bindings ...interface{}) Query[T]

func (Query[T]) RightJoin

func (m Query[T]) RightJoin(table Table, where func(join Query[T]) Query[T], alias ...string) Query[T]

func (Query[T]) Select

func (m Query[T]) Select(columns ...interface{}) Query[T]

func (Query[T]) SelectForUpdate

func (m Query[T]) SelectForUpdate(columns ...interface{}) Query[T]

func (Query[T]) SubQuery added in v0.3.0

func (m Query[T]) SubQuery() *SubQuery

func (Query[T]) TableInterface added in v0.3.0

func (m Query[T]) TableInterface() Table

func (Query[T]) Transaction

func (m Query[T]) Transaction(q func(tx *sql.Tx) error) error

func (Query[T]) Update

func (m Query[T]) Update(column interface{}, val interface{}) QueryResult

func (Query[T]) Updates

func (m Query[T]) Updates(updates ...UpdateColumn) QueryResult

func (Query[T]) UseDB

func (m Query[T]) UseDB(db *sql.DB) Query[T]

func (Query[T]) UseTx

func (m Query[T]) UseTx(tx *sql.Tx) Query[T]

func (Query[T]) Where

func (m Query[T]) Where(column interface{}, vals ...interface{}) Query[T]

"id=1" &obj.id, 1 &obj.id, "=", 1

func (Query[T]) WhereFunc added in v0.3.0

func (m Query[T]) WhereFunc(f func(Query[T]) Query[T]) Query[T]

"id=1" &obj.id, 1 &obj.id, "=", 1

type QueryResult

type QueryResult struct {
	PrepareSql   string
	Bindings     []interface{}
	LastInsertId int64
	RowsAffected int64
	Err          error
}

func (QueryResult) Error added in v0.3.0

func (q QueryResult) Error() error

func (QueryResult) Sql

func (q QueryResult) Sql() string

type Raw

type Raw string

type SubQuery added in v0.3.0

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

func (SubQuery) DatabaseName added in v0.3.0

func (m SubQuery) DatabaseName() string

func (SubQuery) Error added in v0.3.0

func (m SubQuery) Error() error

func (SubQuery) TableName added in v0.3.0

func (SubQuery) TableName() string

type Table

type Table interface {
	//Query() *Query
	TableName() string
	DatabaseName() string
}

type UpdateColumn

type UpdateColumn struct {
	Column interface{}
	Val    interface{}
}

type WhereOperator

type WhereOperator Raw
const (
	WhereEqual          WhereOperator = "="
	WhereNotEqual       WhereOperator = "!="
	WhereGreatThan      WhereOperator = ">"
	WhereGreaterOrEqual WhereOperator = ">="
	WhereLessThan       WhereOperator = "<"
	WhereLessOrEqual    WhereOperator = "<="
	WhereIn             WhereOperator = "in"
	WhereNotIn          WhereOperator = "not in"
	WhereLike           WhereOperator = "like"
	WhereNotLike        WhereOperator = "not like"
	WhereRlike          WhereOperator = "rlike"
	WhereNotRlike       WhereOperator = "not rlike"
	WhereIsNull         WhereOperator = "is null"
	WhereIsNotNull      WhereOperator = "is not null"
)

Jump to

Keyboard shortcuts

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