Documentation ¶
Index ¶
- func Close() error
- func DB() *sqlx.DB
- func DeleteBuilder(table string) sq.DeleteBuilder
- func ExecContext(ctx context.Context, builder sq.Sqlizer) (sql.Result, error)
- func GetContext(ctx context.Context, builder sq.Sqlizer, dest interface{}) error
- func Init(cfg *dsncfg.Database) error
- func InitFromConfig(cfgFile string) error
- func InitFromEnv() error
- func InsertBuilder(into string) sq.InsertBuilder
- func InsertModelBuilder(into string, model interface{}, ignoreColumns ...string) sq.InsertBuilder
- func ModelColumns(model interface{}, ignoreColumns ...string) []string
- func SelectBuilder(columns ...string) sq.SelectBuilder
- func SelectContext(ctx context.Context, builder sq.Sqlizer, dest interface{}) error
- func SetConnectionConfig(cfg dsncfg.ConnectionConfig)
- func SetDBMapper(mapper *reflectx.Mapper)
- func SetUpdateColumns(updateBuilder sq.UpdateBuilder, model interface{}, ignoreColumns ...string) sq.UpdateBuilder
- func Transaction(ctx context.Context, opt *sql.TxOptions, fn func(tx *sqlx.Tx) error) error
- func TxExecContext(ctx context.Context, tx *sqlx.Tx, builder sq.Sqlizer) (sql.Result, error)
- func TxGetContext(ctx context.Context, tx *sqlx.Tx, builder sq.Sqlizer, dest interface{}) error
- func TxSelectContext(ctx context.Context, tx *sqlx.Tx, builder sq.Sqlizer, dest interface{}) error
- func UpdateBuilder(table string) sq.UpdateBuilder
- type SqlAgent
- func (a *SqlAgent) Close() error
- func (a *SqlAgent) DB() *sqlx.DB
- func (a *SqlAgent) DeleteBuilder(table string) sq.DeleteBuilder
- func (a *SqlAgent) ExecContext(ctx context.Context, builder sq.Sqlizer) (sql.Result, error)
- func (a *SqlAgent) GetContext(ctx context.Context, builder sq.Sqlizer, dest interface{}) error
- func (a *SqlAgent) InsertBuilder(into string) sq.InsertBuilder
- func (a *SqlAgent) InsertModelBuilder(into string, model interface{}, ignoreColumns ...string) sq.InsertBuilder
- func (a *SqlAgent) ModelColumns(model interface{}, ignoreColumns ...string) []string
- func (a *SqlAgent) SelectBuilder(columns ...string) sq.SelectBuilder
- func (a *SqlAgent) SelectContext(ctx context.Context, builder sq.Sqlizer, dest interface{}) error
- func (a *SqlAgent) SetConnectionConfig(cfg dsncfg.ConnectionConfig)
- func (a *SqlAgent) SetDBMapper(mapper *reflectx.Mapper)
- func (a *SqlAgent) SetUpdateColumns(updateBuilder sq.UpdateBuilder, model interface{}, ignoreColumns ...string) sq.UpdateBuilder
- func (a *SqlAgent) Transaction(ctx context.Context, opt *sql.TxOptions, fn func(tx *sqlx.Tx) error) error
- func (a *SqlAgent) UpdateBuilder(table string) sq.UpdateBuilder
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func DeleteBuilder ¶
func DeleteBuilder(table string) sq.DeleteBuilder
func ExecContext ¶
ExecContext exec sql built by sq.InsertBuilder/sq.UpdateBuilder/sq.DeleteBuilder and return result. builder: sq.InsertBuilder, sq.UpdateBuilder or sq.DeleteBuilder
func GetContext ¶
GetContext get one record by sql built by sq.SelectBuilder and scan to dest. builder: sq.SelectBuilder
func InitFromConfig ¶
Init module SqlAgent with database config. cfgFile: config file path, support file type [.json | .yaml/.yml], default decoder is json.
func InitFromEnv ¶
func InitFromEnv() error
InitFromEnv use Env variable to detect config file and init SqlAgent with first found config file. Use env "DB_CONFIG" to set config file path. If config file env not set, will find specific file name in a list of dirs. File name format:
If env "DB_LABEL" set, format is "database-$DB_LABEL.[json | yaml/yml]" Default file name is "database.[json | yaml/yml]"
Search dirs in order:
./ ./config ./../ ./../config ./../../ ./../../config
func InsertBuilder ¶
func InsertBuilder(into string) sq.InsertBuilder
InsertBuilder return squirrel.InsertBuilder for table into into: insert table name
func InsertModelBuilder ¶
func InsertModelBuilder(into string, model interface{}, ignoreColumns ...string) sq.InsertBuilder
func ModelColumns ¶
ModelColumns use module sqlagent to extract model columns.
func SelectBuilder ¶
func SelectBuilder(columns ...string) sq.SelectBuilder
func SelectContext ¶
SelectContext get one or multi records by sql built by sq.SelectBuilder and scan to dest. builder: sq.SelectBuilder
func SetConnectionConfig ¶
func SetConnectionConfig(cfg dsncfg.ConnectionConfig)
SetConnectionConfig set conenction for module sqlagent.
func SetDBMapper ¶
SetDBMapper set mapper for module sqlagent
func SetUpdateColumns ¶
func SetUpdateColumns(updateBuilder sq.UpdateBuilder, model interface{}, ignoreColumns ...string) sq.UpdateBuilder
func Transaction ¶
func TxExecContext ¶
TxExecContext exec sql built by sq.InsertBuilder/sq.UpdateBuilder/sq.DeleteBuilder and return result. builder: sq.InsertBuilder, sq.UpdateBuilder or sq.DeleteBuilder
func TxGetContext ¶
TxGetContext get one record by sql built by sq.SelectBuilder and scan to dest. builder: sq.SelectBuilder
func TxSelectContext ¶
TxSelectContext get one or multi records by sql built by sq.SelectBuilder and scan to dest. builder: sq.SelectBuilder
func UpdateBuilder ¶
func UpdateBuilder(table string) sq.UpdateBuilder
Types ¶
type SqlAgent ¶
type SqlAgent struct {
// contains filtered or unexported fields
}
func (*SqlAgent) DeleteBuilder ¶
func (a *SqlAgent) DeleteBuilder(table string) sq.DeleteBuilder
func (*SqlAgent) ExecContext ¶
ExecContext exec sql built by sq.InsertBuilder/sq.UpdateBuilder/sq.DeleteBuilder and return result. builder: sq.InsertBuilder, sq.UpdateBuilder or sq.DeleteBuilder
func (*SqlAgent) GetContext ¶
GetContext get one record by sql built by sq.SelectBuilder and scan to dest. builder: sq.SelectBuilder
func (*SqlAgent) InsertBuilder ¶
func (a *SqlAgent) InsertBuilder(into string) sq.InsertBuilder
InsertBuilder return squirrel.InsertBuilder for table into into: insert table name
func (*SqlAgent) InsertModelBuilder ¶
func (a *SqlAgent) InsertModelBuilder(into string, model interface{}, ignoreColumns ...string) sq.InsertBuilder
InsertModelBuilder use name and value of model feild to build insert sql. ignoreColumns should be the same with column name that is converted by sqlx.DB.Mapper.
func (*SqlAgent) ModelColumns ¶
ModelColumns use sqlx.DB.Mapper to extract model table columns name. Columns in ignoreColumns will be ignored. ignoreColumns should be the same with column name that is converted by sqlx.DB.Mapper.
func (*SqlAgent) SelectBuilder ¶
func (a *SqlAgent) SelectBuilder(columns ...string) sq.SelectBuilder
func (*SqlAgent) SelectContext ¶
SelectContext get one or multi records by sql built by sq.SelectBuilder and scan to dest. builder: sq.SelectBuilder
func (*SqlAgent) SetConnectionConfig ¶
func (a *SqlAgent) SetConnectionConfig(cfg dsncfg.ConnectionConfig)
SetConnectionConfig set connection config to sql.DB.
func (*SqlAgent) SetDBMapper ¶
SetDBMapper set mapper to sqlx.DB.Mapper. Default mapper use tag `db`, if no tags it will use lower case field name as column name.
func (*SqlAgent) SetUpdateColumns ¶
func (a *SqlAgent) SetUpdateColumns(updateBuilder sq.UpdateBuilder, model interface{}, ignoreColumns ...string) sq.UpdateBuilder
SetUpdateColumns use name and value of model feild to build update sql. ignoreColumns should be the same with column name that is converted by sqlx.DB.Mapper.
func (*SqlAgent) Transaction ¶
func (*SqlAgent) UpdateBuilder ¶
func (a *SqlAgent) UpdateBuilder(table string) sq.UpdateBuilder