Documentation
¶
Index ¶
- Constants
- Variables
- func Copy(src *PlainDB, dsc *PlainDB)
- func Factories() []string
- func Register(name string, f Factory)
- func UnregisterAll()
- type Config
- type Database
- type DefaultOptimizerConfig
- type Driver
- type Factory
- type Optimizer
- type OptimizerFactory
- type PlainDB
- func (d *PlainDB) BuildTableName(tableName string) string
- func (d *PlainDB) DB() *sql.DB
- func (d *PlainDB) Driver() string
- func (d *PlainDB) Exec(query string, args ...interface{}) (sql.Result, error)
- func (d *PlainDB) Init(o PlainDBOption) error
- func (d *PlainDB) Prefix() string
- func (d *PlainDB) Query(query string, args ...interface{}) (*sql.Rows, error)
- func (d *PlainDB) QueryRow(query string, args ...interface{}) *sql.Row
- func (d *PlainDB) SetDB(db *sql.DB)
- func (d *PlainDB) SetDriver(driver string)
- func (d *PlainDB) SetPrefix(prefix string)
- func (d *PlainDB) Table(tableName string) *PlainTable
- type PlainDBOption
- type PlainTable
- type ReplaceOptimizer
- type Table
- type TxDB
Constants ¶
const DefaultConnMaxLifetimeInSecond = int64(30)
DefaultConnMaxLifetimeInSecond default conn max lifetime
Variables ¶
var DefaultOptimizerFactory = func(loader func(v interface{}) error) (Optimizer, error) { if loader == nil { return nil, nil } c := &DefaultOptimizerConfig{} err := loader(c) if err != nil { return nil, err } if c.Replace == nil { return nil, err } return c.Replace, nil }
var ErrSetDriverFromTable = errors.New("herb:sql/db you can't execute set driver method in table interface")
ErrSetDriverFromTable error raised when execute SetDriver method of table .
Functions ¶
func Factories ¶
func Factories() []string
Factories returns a sorted list of the names of the registered factories.
Types ¶
type Config ¶
type Config struct {
//Driver sql driver.
Driver string
//Type sql database type.
Type string
//Conn sql conn string.
DataSource string
//Prefix sql table prefix.
Prefix string
//MaxIdleConns max idle conns.
MaxIdleConns int
//ConnMaxLifetimeInSecond conn max Lifetime in second.
ConnMaxLifetimeInSecond int64
//MaxOpenConns max open conns.
MaxOpenConns int
Optimizer func(v interface{}) error `config:", lazyload"`
}
Config database config
type Database ¶
type Database interface {
//SetDB set sqlDB to database interface
SetDB(db *sql.DB)
//DB get sql DB of database.
DB() *sql.DB
//Driver return database drvier name.
Driver() string
//SetDriver set driver name.
SetDriver(string)
//BuildTableName return table name with giver table.
BuildTableName(table string) string
//Exec exec query with args.
Exec(query string, args ...interface{}) (sql.Result, error)
//Query exec query with args .
//Return rows.
Query(query string, args ...interface{}) (*sql.Rows, error)
//QueryRow exec query with args and rows.
//Return row.
QueryRow(query string, args ...interface{}) *sql.Row
}
Database database interface
type DefaultOptimizerConfig ¶
type DefaultOptimizerConfig struct {
Replace *ReplaceOptimizer
}
type OptimizerFactory ¶
type PlainDB ¶
type PlainDB struct {
OptimizerFactory OptimizerFactory
Optimizer Optimizer
// contains filtered or unexported fields
}
PlainDB plain database struct.
func (*PlainDB) BuildTableName ¶
BuildTableName return table name with giver table.
func (*PlainDB) Init ¶
func (d *PlainDB) Init(o PlainDBOption) error
Init init plain database with given option.
func (*PlainDB) Table ¶
func (d *PlainDB) Table(tableName string) *PlainTable
Table create plain table with given table name.
type PlainDBOption ¶
PlainDBOption plain database init option interface.
type PlainTable ¶
type PlainTable struct {
Database
// contains filtered or unexported fields
}
PlainTable plain table struct
func NewTable ¶
func NewTable(db Database, tableName string) *PlainTable
NewTable create plain table with given database and table name.
func (*PlainTable) BuildFieldName ¶
func (t *PlainTable) BuildFieldName(name string) string
BuildFieldName build field name with alias.
func (*PlainTable) SetDriver ¶
func (t *PlainTable) SetDriver(driver string)
SetDriver painc if execute SetDriver method of table.
func (*PlainTable) SetName ¶
func (t *PlainTable) SetName(table string)
SetName set plain table name.
func (*PlainTable) TableName ¶
func (t *PlainTable) TableName() string
TableName return table name build with database.
type ReplaceOptimizer ¶
func (*ReplaceOptimizer) MustOptimize ¶
func (o *ReplaceOptimizer) MustOptimize(cmd string, args []interface{}) (string, []interface{})
type Table ¶
type Table interface {
Database
//BuildFieldName return field name with given field.
BuildFieldName(field string) string
//SetAlias set table alias
SetAlias(string)
//Alias return table alias
Alias() string
//TableName return table name
TableName() string
}
Table table interface
type TxDB ¶
TxDB database wtih transaction.