Documentation ¶
Index ¶
- Constants
- func GetColumnNames(d Dal, dst schema.Tabler, filter func(columnMeta ColumnMeta) bool) (names []string, err error)
- func GetPrimarykeyColumnNames(d Dal, dst schema.Tabler) (names []string, err error)
- type Clause
- func From(table interface{}) Clause
- func Groupby(expr string) Clause
- func Having(clause string, params ...interface{}) Clause
- func Join(clause string, params ...interface{}) Clause
- func Limit(limit int) Clause
- func Offset(offset int) Clause
- func Orderby(expr string) Clause
- func Select(fields string) Clause
- func Where(clause string, params ...interface{}) Clause
- type ColumnMeta
- type Dal
- type DalClause
Constants ¶
View Source
const FromClause string = "From"
View Source
const GroupbyClause string = "GroupBy"
View Source
const HavingClause string = "Having"
View Source
const JoinClause string = "Join"
View Source
const LimitClause string = "Limit"
View Source
const OffsetClause string = "Offset"
View Source
const OrderbyClause string = "OrderBy"
View Source
const SelectClause string = "Select"
View Source
const WhereClause string = "Where"
Variables ¶
This section is empty.
Functions ¶
func GetColumnNames ¶
func GetColumnNames(d Dal, dst schema.Tabler, filter func(columnMeta ColumnMeta) bool) (names []string, err error)
GetColumnNames returns table Column Names in database
Types ¶
type Clause ¶
type Clause struct { Type string Data interface{} }
type ColumnMeta ¶
type ColumnMeta interface { Name() string DatabaseTypeName() string // varchar ColumnType() (columnType string, ok bool) // varchar(64) PrimaryKey() (isPrimaryKey bool, ok bool) AutoIncrement() (isAutoIncrement bool, ok bool) Length() (length int64, ok bool) DecimalSize() (precision int64, scale int64, ok bool) Nullable() (nullable bool, ok bool) Unique() (unique bool, ok bool) ScanType() reflect.Type Comment() (value string, ok bool) DefaultValue() (value string, ok bool) }
ColumnMeta column type interface
func GetPrimarykeyColumns ¶
func GetPrimarykeyColumns(d Dal, dst schema.Tabler) ([]ColumnMeta, error)
GetPrimarykeyColumns get returns PrimaryKey table Meta in database
type Dal ¶
type Dal interface { // AutoMigrate runs auto migration for given entity AutoMigrate(entity interface{}, clauses ...Clause) error // Exec executes raw sql query Exec(query string, params ...interface{}) error // RawCursor executes raw sql query and returns a database cursor RawCursor(query string, params ...interface{}) (*sql.Rows, error) // Cursor returns a database cursor, cursor is especially useful when handling big amount of rows of data Cursor(clauses ...Clause) (*sql.Rows, error) // Fetch loads row data from `cursor` into `dst` Fetch(cursor *sql.Rows, dst interface{}) error // All loads matched rows from database to `dst`, USE IT WITH COUTIOUS!! All(dst interface{}, clauses ...Clause) error // First loads first matched row from database to `dst`, error will be returned if no records were found First(dst interface{}, clauses ...Clause) error // All loads matched rows from database to `dst`, USE IT WITH COUTIOUS!! Count(clauses ...Clause) (int64, error) // Pluck used to query single column Pluck(column string, dest interface{}, clauses ...Clause) error // Create insert record to database Create(entity interface{}, clauses ...Clause) error // Update updates record Update(entity interface{}, clauses ...Clause) error // CreateOrUpdate tries to create the record, or fallback to update all if failed CreateOrUpdate(entity interface{}, clauses ...Clause) error // CreateIfNotExist tries to create the record if not exist CreateIfNotExist(entity interface{}, clauses ...Clause) error // Delete records from database Delete(entity interface{}, clauses ...Clause) error // AllTables returns all tables in database AllTables() ([]string, error) // GetColumns returns table columns in database GetColumns(dst schema.Tabler, filter func(columnMeta ColumnMeta) bool) (cms []ColumnMeta, err error) // GetPrimarykeyFields get the PrimaryKey from `gorm` tag GetPrimaryKeyFields(t reflect.Type) []reflect.StructField }
Dal aims to facilitate an isolation between DBS and our System by defining a set of operations should a DBS provide
Click to show internal directories.
Click to hide internal directories.