Documentation
¶
Overview ¶
A simple and quick to get started go orm framework if you have experience with SQL language.
Index ¶
- Constants
- func Close(closer io.Closer)
- func CloseCache()
- func Commit(txer Txer, fn func(tx *sql.Tx) error) error
- func InsertStruct(drvName string, exec Execer, obj interface{}, tbName string) (sql.Result, error)
- func InsertStructContext(drvName string, exec Execer, ctx context.Context, obj interface{}, ...) (sql.Result, error)
- func QueryDBDataArr(queryer Queryer, querySql string, args ...interface{}) (titles []string, result [][]*DBData, err error)
- func QueryDBDataArrContext(queryer Queryer, ctx context.Context, querySql string, args ...interface{}) (titles []string, result [][]*DBData, err error)
- func QueryDBDataMap(queryer Queryer, querySql string, args ...interface{}) (titles []string, result []map[string]*DBData, err error)
- func QueryDBDataMapContext(queryer Queryer, ctx context.Context, querySql string, args ...interface{}) (titles []string, result []map[string]*DBData, err error)
- func QueryElem(queryer Queryer, result interface{}, querySql string, args ...interface{}) error
- func QueryElemContext(queryer Queryer, ctx context.Context, result interface{}, querySql string, ...) error
- func QueryElems(queryer Queryer, result interface{}, querySql string, args ...interface{}) error
- func QueryElemsContext(queryer Queryer, ctx context.Context, result interface{}, querySql string, ...) error
- func QueryPageArr(queryer Queryer, querySql string, args ...interface{}) (titles []string, result [][]interface{}, err error)
- func QueryPageArrContext(queryer Queryer, ctx context.Context, querySql string, args ...interface{}) (titles []string, result [][]interface{}, err error)
- func QueryPageMap(queryer Queryer, querySql string, args ...interface{}) (titles []string, result []map[string]interface{}, err error)
- func QueryPageMapContext(queryer Queryer, ctx context.Context, querySql string, args ...interface{}) (titles []string, result []map[string]interface{}, err error)
- func QueryStruct(queryer Queryer, obj interface{}, querySql string, args ...interface{}) error
- func QueryStructContext(queryer Queryer, ctx context.Context, obj interface{}, querySql string, ...) error
- func QueryStructs(queryer Queryer, obj interface{}, querySql string, args ...interface{}) error
- func QueryStructsContext(queryer Queryer, ctx context.Context, obj interface{}, querySql string, ...) error
- func RegCache(key string, db *DB)
- func RegCacheWithIni(iniPath string)
- func Rollback(tx *sql.Tx)
- func ScanStructs(rows *sql.Rows, obj interface{}) error
- func SetLog(l Log)
- func StmtIn(paramStartIdx, paramsLen int, drvName ...string) string
- type BuilderDriver
- type DB
- func (db *DB) Close() error
- func (db *DB) Commit(fn func(*sql.Tx) error) error
- func (db *DB) DriverName() string
- func (db *DB) InsertStruct(structPtr interface{}, tbName string) (sql.Result, error)
- func (db *DB) InsertStructContext(ctx context.Context, structPtr interface{}, tbName string) (sql.Result, error)
- func (db *DB) IsClose() bool
- func (db *DB) QueryDBDataArr(querySql string, args ...interface{}) (titles []string, result [][]*DBData, err error)
- func (db *DB) QueryDBDataArrContext(ctx context.Context, querySql string, args ...interface{}) (titles []string, result [][]*DBData, err error)
- func (db *DB) QueryDBDataMap(querySql string, args ...interface{}) (titles []string, result []map[string]*DBData, err error)
- func (db *DB) QueryDBDataMapContext(ctx context.Context, querySql string, args ...interface{}) (titles []string, result []map[string]*DBData, err error)
- func (db *DB) QueryElem(result interface{}, querySql string, args ...interface{}) error
- func (db *DB) QueryElemContext(ctx context.Context, result interface{}, querySql string, args ...interface{}) error
- func (db *DB) QueryElems(result interface{}, querySql string, args ...interface{}) error
- func (db *DB) QueryElemsContext(ctx context.Context, result interface{}, querySql string, args ...interface{}) error
- func (db *DB) QueryPageArr(querySql string, args ...interface{}) (titles []string, result [][]interface{}, err error)
- func (db *DB) QueryPageArrContext(ctx context.Context, querySql string, args ...interface{}) (titles []string, result [][]interface{}, err error)
- func (db *DB) QueryPageMap(querySql string, args ...interface{}) (titles []string, result []map[string]interface{}, err error)
- func (db *DB) QueryPageMapContext(ctx context.Context, querySql string, args ...interface{}) (titles []string, result []map[string]interface{}, err error)
- func (db *DB) QueryStruct(structPtr interface{}, querySql string, args ...interface{}) error
- func (db *DB) QueryStructContext(ctx context.Context, structPtr interface{}, querySql string, ...) error
- func (db *DB) QueryStructs(structPtr interface{}, querySql string, args ...interface{}) error
- func (db *DB) QueryStructsContext(ctx context.Context, structPtr interface{}, querySql string, ...) error
- func (db *DB) ScanStructs(rows *sql.Rows, structsPtr interface{}) error
- func (db *DB) StmtIn(paramStartIdx, paramsLen int) string
- type DBData
- type Driver
- type Execer
- type Log
- type PageSql
- func (p *PageSql) FmtPage(args ...interface{}) *PageSql
- func (p *PageSql) QueryCount(db *DB, args ...interface{}) (int64, error)
- func (p *PageSql) QueryDBDataArr(db *DB, args ...interface{}) ([]string, [][]*DBData, error)
- func (p *PageSql) QueryDBDataMap(db *DB, args ...interface{}) ([]string, []map[string]*DBData, error)
- func (p *PageSql) QueryPageArr(db *DB, args ...interface{}) ([]string, [][]interface{}, error)
- func (p *PageSql) QueryPageMap(db *DB, args ...interface{}) ([]string, []map[string]interface{}, error)
- type Queryer
- type QuickSql
- type SelectBuilder
- func (b *SelectBuilder) Args() []interface{}
- func (b *SelectBuilder) Copy(newSelectBuffer bool) *SelectBuilder
- func (b *SelectBuilder) From(query string, args ...interface{}) *SelectBuilder
- func (b *SelectBuilder) GroupBy(query string, args ...interface{}) *SelectBuilder
- func (b *SelectBuilder) IfGroupBy(add bool, query string, args ...interface{}) *SelectBuilder
- func (b *SelectBuilder) IfLimit(add bool, limit int64) *SelectBuilder
- func (b *SelectBuilder) IfOffset(add bool, offset int64) *SelectBuilder
- func (b *SelectBuilder) IfOrderBy(add bool, query string, args ...interface{}) *SelectBuilder
- func (b *SelectBuilder) IfWhere(add bool, query string, args ...interface{}) *SelectBuilder
- func (b *SelectBuilder) IfWhereIn(add bool, inQuery string, sliceArgs interface{}) *SelectBuilder
- func (b *SelectBuilder) Indent() string
- func (b *SelectBuilder) Limit(limit int64) *SelectBuilder
- func (b *SelectBuilder) Offset(offset int64) *SelectBuilder
- func (b *SelectBuilder) OrderBy(query string, args ...interface{}) *SelectBuilder
- func (b *SelectBuilder) Select(column ...string) *SelectBuilder
- func (b *SelectBuilder) SelectNew(column ...string) *SelectBuilder
- func (b *SelectBuilder) SelectStruct(obj interface{}) *SelectBuilder
- func (b *SelectBuilder) SetDump(dump bool) *SelectBuilder
- func (b *SelectBuilder) Sql() []interface{}
- func (b *SelectBuilder) String() string
- func (b *SelectBuilder) Where(query string, args ...interface{}) *SelectBuilder
- func (b *SelectBuilder) WhereIn(inQuery string, sliceArgs interface{}) *SelectBuilder
- type Txer
Constants ¶
const ( DRV_NAME_MYSQL = "mysql" DRV_NAME_ORACLE = "oracle" // or "oci8" DRV_NAME_POSTGRES = "postgres" DRV_NAME_SQLITE3 = "sqlite3" DRV_NAME_SQLSERVER = "sqlserver" // or "mssql" )
Variables ¶
This section is empty.
Functions ¶
func InsertStruct ¶
func InsertStructContext ¶
func QueryDBDataArr ¶ added in v0.0.5
func QueryDBDataArrContext ¶ added in v0.0.5
func QueryDBDataMap ¶ added in v0.0.5
func QueryDBDataMapContext ¶ added in v0.0.5
func QueryElemContext ¶
func QueryElems ¶
func QueryElemsContext ¶
func QueryPageArr ¶
func QueryPageArrContext ¶
func QueryPageMap ¶
func QueryPageMapContext ¶
func QueryStruct ¶
func QueryStructContext ¶
func QueryStructs ¶
func QueryStructsContext ¶
func RegCacheWithIni ¶
func RegCacheWithIni(iniPath string)
func ScanStructs ¶
Types ¶
type BuilderDriver ¶ added in v0.0.5
type BuilderDriver interface {
DriverName() string
}
type DB ¶
qsql.DB Extendd sql.DB and implement qsql.QuickQuery interface
func (*DB) Commit ¶
A lazy function to commit the *sql.Tx if will auto commit when the function is nil error, or do a rollback and return the function error.
func (*DB) DriverName ¶
func (*DB) InsertStruct ¶
Reflect one db data to the struct. the struct tag format like `db:"field_title"`, reference to: http://github.com/jmoiron/sqlx
func (*DB) InsertStructContext ¶
func (*DB) QueryDBDataArr ¶ added in v0.0.5
func (*DB) QueryDBDataArrContext ¶ added in v0.0.5
func (*DB) QueryDBDataMap ¶ added in v0.0.5
func (*DB) QueryDBDataMapContext ¶ added in v0.0.5
func (*DB) QueryElemContext ¶
func (*DB) QueryElems ¶
Query one field to a sql.Scanner array.
func (*DB) QueryElemsContext ¶
func (*DB) QueryPageArr ¶
func (db *DB) QueryPageArr(querySql string, args ...interface{}) (titles []string, result [][]interface{}, err error)
Reflect the query result to a string array.
func (*DB) QueryPageArrContext ¶
func (*DB) QueryPageMap ¶
func (db *DB) QueryPageMap(querySql string, args ...interface{}) (titles []string, result []map[string]interface{}, err error)
Reflect the query result to a string map.
func (*DB) QueryPageMapContext ¶
func (*DB) QueryStruct ¶
Reflect the sql.Query result to a struct.
func (*DB) QueryStructContext ¶
func (*DB) QueryStructs ¶
Reflect the sql.Query result to a struct array. Return empty array if data not found.
func (*DB) QueryStructsContext ¶
func (*DB) ScanStructs ¶
Reflect the sql.Rows to []struct array. Return empty array if data not found. Refere to: github.com/jmoiron/sqlx DO NOT forget close the rows
type PageSql ¶
type PageSql struct {
// contains filtered or unexported fields
}
func NewPageSql ¶
func (*PageSql) QueryCount ¶
func (*PageSql) QueryDBDataArr ¶ added in v0.0.5
func (*PageSql) QueryDBDataMap ¶ added in v0.0.5
func (*PageSql) QueryPageArr ¶
type Queryer ¶
type Queryer interface {
Query(query string, args ...interface{}) (*sql.Rows, error)
QueryRow(query string, args ...interface{}) *sql.Row
QueryContext(ctx context.Context, query string, args ...interface{}) (*sql.Rows, error)
QueryRowContext(ctx context.Context, query string, args ...interface{}) *sql.Row
}
type QuickSql ¶ added in v0.0.3
type QuickSql interface {
DriverName() string
// Insert a struct data into tbName
//
// Reflect one db data to the struct.
// the struct tag format like `db:"field_title"`, reference to: http://github.com/jmoiron/sqlx
//
InsertStruct(structPtr interface{}, tbName string) (sql.Result, error)
InsertStructContext(ctx context.Context, structPtr interface{}, tbName string) (sql.Result, error)
// Scan the rows result to []struct
// Reflect the sql.Rows to a struct array.
// Return empty array if data not found.
// Refere to: github.com/jmoiron/sqlx
// DOT NOT forget close the rows after called.
ScanStructs(rows *sql.Rows, structsPtr interface{}) error
// Query db data to a struct
QueryStruct(structPrt interface{}, querySql string, args ...interface{}) error
QueryStructContext(ctx context.Context, structPrt interface{}, querySql string, args ...interface{}) error
// Query db data to []struct
QueryStructs(structsPrt interface{}, querySql string, args ...interface{}) error
QueryStructsContext(ctx context.Context, structsPrt interface{}, querySql string, args ...interface{}) error
// Query a element data like int, string.
// Same as row.Scan(&e)
QueryElem(ePtr interface{}, querySql string, args ...interface{}) error
QueryElemContext(ctx context.Context, ePtr interface{}, querySql string, args ...interface{}) error
// Query elements data like []int, []string in result.
QueryElems(ePtr interface{}, querySql string, args ...interface{}) error
QueryElemsContext(ctx context.Context, ePtr interface{}, querySql string, args ...interface{}) error
// Query a page data to array.
// the result data is [][]*string but no nil *string pointer instance.
QueryPageArr(querySql string, args ...interface{}) (titles []string, result [][]interface{}, err error)
QueryPageArrContext(ctx context.Context, querySql string, args ...interface{}) (titles []string, result [][]interface{}, err error)
QueryDBDataArr(querySql string, args ...interface{}) (titles []string, result [][]*DBData, err error)
QueryDBDataArrContext(ctx context.Context, querySql string, args ...interface{}) (titles []string, result [][]*DBData, err error)
// Query a page data to map, NOT RECOMMENED to use when there is a large page data.
// the result data is []map[string]*string but no nil *string pointer instance.
QueryPageMap(querySql string, args ...interface{}) (titles []string, result []map[string]interface{}, err error)
QueryPageMapContext(ctx context.Context, querySql string, args ...interface{}) (titles []string, result []map[string]interface{}, err error)
QueryDBDataMap(querySql string, args ...interface{}) (titles []string, result []map[string]*DBData, err error)
QueryDBDataMapContext(ctx context.Context, querySql string, args ...interface{}) (titles []string, result []map[string]*DBData, err error)
// Extend stmt for the where in
// paramStartIdx default is 0, but you need count it when the driver is mssq, pgsql etc. .
//
// Example for the first input:
// fmt.Sprintf("select * from table_name where in (%s)", qsql.StmtWhereIn(0,len(args))
// Or
// fmt.Sprintf("select * from table_name where in (%s)", qsql.StmtWhereIn(0,len(args), qsql.DRV_NAME_MYSQL)
//
// Example for the second input:
// fmt.Sprintf("select * from table_name where id=? in (%s)", qsql.StmtWhereIn(1,len(args))
//
// Return "?,?,?,?..." for default, or "@p1,@p2,@p3..." for mssql, or ":1,:2,:3..." for pgsql when paramStartIdx is 0.
StmtIn(paramStartIdx, paramLen int) string
// auto commit when the func is return nil, or auto rollback when the func is error
Commit(func(tx *sql.Tx) error) error
}
type SelectBuilder ¶ added in v0.0.5
type SelectBuilder struct {
// contains filtered or unexported fields
}
the stmt placeholder using '?' for common, it will be auto replaced by builder in the end.
func NewSelectBuidler ¶ added in v0.0.5
func NewSelectBuidler(drv BuilderDriver) *SelectBuilder
func NewSelectBuilder ¶ added in v0.0.5
func NewSelectBuilder(driverName string) *SelectBuilder
func NewSelectBuilderWithIndent ¶ added in v0.0.5
func NewSelectBuilderWithIndent(indent string, driverName string) *SelectBuilder
func (*SelectBuilder) Args ¶ added in v0.0.5
func (b *SelectBuilder) Args() []interface{}
get the buffer args
func (*SelectBuilder) Copy ¶ added in v0.0.5
func (b *SelectBuilder) Copy(newSelectBuffer bool) *SelectBuilder
copy and return a new selector without select buffer
func (*SelectBuilder) From ¶ added in v0.0.5
func (b *SelectBuilder) From(query string, args ...interface{}) *SelectBuilder
func (*SelectBuilder) GroupBy ¶ added in v0.0.5
func (b *SelectBuilder) GroupBy(query string, args ...interface{}) *SelectBuilder
func (*SelectBuilder) IfGroupBy ¶ added in v0.0.5
func (b *SelectBuilder) IfGroupBy(add bool, query string, args ...interface{}) *SelectBuilder
add -- true append to builder, false nothing to do.
func (*SelectBuilder) IfLimit ¶ added in v0.0.5
func (b *SelectBuilder) IfLimit(add bool, limit int64) *SelectBuilder
add -- true append to builder, false nothing to do.
func (*SelectBuilder) IfOffset ¶ added in v0.0.5
func (b *SelectBuilder) IfOffset(add bool, offset int64) *SelectBuilder
add -- true append to builder, false nothing to do.
func (*SelectBuilder) IfOrderBy ¶ added in v0.0.5
func (b *SelectBuilder) IfOrderBy(add bool, query string, args ...interface{}) *SelectBuilder
add -- true append to builder, false nothing to do.
func (*SelectBuilder) IfWhere ¶ added in v0.0.5
func (b *SelectBuilder) IfWhere(add bool, query string, args ...interface{}) *SelectBuilder
func (*SelectBuilder) IfWhereIn ¶ added in v0.0.5
func (b *SelectBuilder) IfWhereIn(add bool, inQuery string, sliceArgs interface{}) *SelectBuilder
add -- true append to builder, false nothing to do. inQuery -- example 'id IN ?', 'AND id IN ?', 'OR id IN ?', the 'IN ?' will be repalced to in format
func (*SelectBuilder) Indent ¶ added in v0.0.5
func (b *SelectBuilder) Indent() string
func (*SelectBuilder) Limit ¶ added in v0.0.5
func (b *SelectBuilder) Limit(limit int64) *SelectBuilder
func (*SelectBuilder) Offset ¶ added in v0.0.5
func (b *SelectBuilder) Offset(offset int64) *SelectBuilder
func (*SelectBuilder) OrderBy ¶ added in v0.0.5
func (b *SelectBuilder) OrderBy(query string, args ...interface{}) *SelectBuilder
func (*SelectBuilder) Select ¶ added in v0.0.5
func (b *SelectBuilder) Select(column ...string) *SelectBuilder
select the columns and append to select buffer
func (*SelectBuilder) SelectNew ¶ added in v0.0.5
func (b *SelectBuilder) SelectNew(column ...string) *SelectBuilder
clean select buffer and select the new columns
func (*SelectBuilder) SelectStruct ¶ added in v0.0.5
func (b *SelectBuilder) SelectStruct(obj interface{}) *SelectBuilder
clean select buffer and select the struct columns
func (*SelectBuilder) SetDump ¶ added in v0.0.5
func (b *SelectBuilder) SetDump(dump bool) *SelectBuilder
func (*SelectBuilder) Sql ¶ added in v0.0.5
func (b *SelectBuilder) Sql() []interface{}
Merge String and Args to a finally slice
func (*SelectBuilder) String ¶ added in v0.0.5
func (b *SelectBuilder) String() string
translate sql to db driver
func (*SelectBuilder) Where ¶ added in v0.0.5
func (b *SelectBuilder) Where(query string, args ...interface{}) *SelectBuilder
func (*SelectBuilder) WhereIn ¶ added in v0.0.5
func (b *SelectBuilder) WhereIn(inQuery string, sliceArgs interface{}) *SelectBuilder