Documentation ¶
Overview ¶
Package db : 数据库模块,封装了常用方法,可缓存数据,可依据配置自动创建myisam引擎的子表,支持mysql和sqlserver
Index ¶
- type BoltDB
- type Conn
- func (d *Conn) AlterMergeTable(dbname, tableName, alterStr string, maxSubTables int) error
- func (d *Conn) DBType() string
- func (d *Conn) Exec(s string, params ...interface{}) (rowAffected, insertID int64, err error)
- func (d *Conn) ExecBatch(s []string) (err error)
- func (d *Conn) ExecByDB(dbidx int, s string, params ...interface{}) (rowAffected, insertID int64, err error)
- func (d *Conn) ExecPrepare(s string, paramNum int, params ...interface{}) (err error)
- func (d *Conn) ExecPrepareByDB(dbidx int, s string, paramNum int, params ...interface{}) (err error)
- func (d *Conn) ExecPrepareV2(s string, paramNum int, params ...interface{}) (int64, []int64, error)deprecated
- func (d *Conn) ExecTx(s string, params ...interface{}) (rowAffected, insertID int64, err error)deprecated
- func (d *Conn) ExecV2(s string, params ...interface{}) (rowAffected, insertID int64, err error)deprecated
- func (d *Conn) GetIdx(dbname string) int
- func (d *Conn) GetName(dbidx int) string
- func (d *Conn) IsReady() bool
- func (d *Conn) MariadbDuplicate2Mysql(strsql string) string
- func (d *Conn) MaxDBIdx() int
- func (d *Conn) MergeTable(dbname, tableName string, maxSubTables, maxTableSize, maxTableRows int) error
- func (d *Conn) ORM(dbidx int) (*gorm.DB, error)
- func (d *Conn) Query(s string, rowsCount int, params ...interface{}) (*QueryData, error)
- func (d *Conn) QueryBig(dbidx int, s string, rowsCount int, params ...interface{}) (*QueryData, error)
- func (d *Conn) QueryByDB(dbidx int, s string, rowsCount int, params ...interface{}) (*QueryData, error)
- func (d *Conn) QueryCache(cacheTag string, startRow, rowsCount int) *QueryData
- func (d *Conn) QueryCacheJSON(cacheTag string, startRow, rowsCount int) stringdeprecated
- func (d *Conn) QueryCacheMultirowPage(cacheTag string, startRow, rowsCount, keyColumeID int) *QueryData
- func (d *Conn) QueryCachePB2(cacheTag string, startRow, rowsCount int) *QueryDatadeprecated
- func (d *Conn) QueryFirstPage(s string, rowsCount int, params ...interface{}) (*QueryData, error)
- func (d *Conn) QueryFirstPageByDB(dbidx int, s string, rowsCount int, params ...interface{}) (*QueryData, error)
- func (d *Conn) QueryJSON(s string, rowsCount int, params ...interface{}) (string, error)deprecated
- func (d *Conn) QueryLimit(s string, startRow, rowsCount int, params ...interface{}) (*QueryData, error)
- func (d *Conn) QueryMultirowPage(dbidx int, s string, rowsCount int, keyColumeID int, params ...interface{}) (query *QueryData, err error)
- func (d *Conn) QueryOne(s string, colNum int, params ...interface{}) (js string, err error)deprecated
- func (d *Conn) QueryOnePB2(s string, colNum int, params ...interface{}) (query *QueryData, err error)deprecated
- func (d *Conn) QueryPB2(s string, rowsCount int, params ...interface{}) (query *QueryData, err error)deprecated
- func (d *Conn) QueryPB2Chan(s string, rowsCount int, params ...interface{}) <-chan *QueryDataChandeprecated
- func (d *Conn) SQLDB(dbidx int) (*sql.DB, error)
- func (d *Conn) SQLDBByName(dbname string) (*sql.DB, error)
- func (d *Conn) SetDefaultDB(dbidx int) error
- func (d *Conn) TablesAreNew() bool
- func (d *Conn) UnionView(dbname, tableName string, maxSubTables, maxTableSize, maxTableRows int) error
- type Drive
- type Opt
- type QueryData
- type QueryDataChan
- type QueryDataRow
- type SQLInterface
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BoltDB ¶
type BoltDB struct {
// contains filtered or unexported fields
}
BoltDB bolt数据文件实例
type Conn ¶
type Conn struct {
// contains filtered or unexported fields
}
Conn sql连接池
func (*Conn) AlterMergeTable ¶
AlterMergeTable 用于修改mrg-myasim表 tableName为主表名称 tableName和alter语句中的table name必须一致
func (*Conn) Exec ¶
Exec 执行语句(insert,delete,update),返回(影响行数,insertId,error),使用事务
s: sql语句 params: 查询参数,对应查询语句中的`?`占位符
func (*Conn) ExecBatch ¶
ExecBatch (maybe unsafe)事务执行多个语句(insert,delete,update)
s: sql语句,不支持占位符,需要使用完整语句
func (*Conn) ExecByDB ¶
func (d *Conn) ExecByDB(dbidx int, s string, params ...interface{}) (rowAffected, insertID int64, err error)
ExecByDB 执行语句(insert,delete,update),返回(影响行数,insertId,error),使用事务
dbidx: 指定数据库名称 s: sql语句 params: 查询参数,对应查询语句中的`?`占位符
func (*Conn) ExecPrepare ¶
ExecPrepare 批量执行占位符语句,用于批量执行语句相同但数据内容不同的场景
s: sql语句 paramNum: 占位符数量,为0时自动计算sql语句中`?`的数量 params: 查询参数,对应查询语句中的`?`占位符
func (*Conn) ExecPrepareByDB ¶
func (d *Conn) ExecPrepareByDB(dbidx int, s string, paramNum int, params ...interface{}) (err error)
ExecPrepareByDB 批量执行占位符语句,用于批量执行语句相同但数据内容不同的场景
dbidx: 数据库名称 s: sql语句 paramNum: 占位符数量,为0时自动计算sql语句中`?`的数量 params: 查询参数,对应查询语句中的`?`占位符
func (*Conn) MariadbDuplicate2Mysql ¶
MariadbDuplicate2Mysql 将mariadb的insert on duplicate语句修改为mysql的样式 注意:`ON DUPLICATE KEY UPDATE` 需要全大写,用于识别
func (*Conn) MergeTable ¶
func (d *Conn) MergeTable(dbname, tableName string, maxSubTables, maxTableSize, maxTableRows int) error
MergeTable 进行分表操作
func (*Conn) QueryBig ¶
func (d *Conn) QueryBig(dbidx int, s string, rowsCount int, params ...interface{}) (*QueryData, error)
QueryBig 可尝试用于大数据集的首页查询,执行2次查询,第一次查询总数,第二次查询结果集,并立即返回第一页
s: sql语句 startRow: 起始行号,0开始 rowsCount: 返回数据行数,0-返回全部 params: 查询参数,对应查询语句中的`?`占位符
func (*Conn) QueryByDB ¶
func (d *Conn) QueryByDB(dbidx int, s string, rowsCount int, params ...interface{}) (*QueryData, error)
QueryByDB 执行查询语句,可指定查询的数据库名称
dbidx:执行语句的数据库名称,需要是dbidxs()里面的合法数据库名称 s: 查询语句 rowsCount: 需要返回的行数 params: 参数
func (*Conn) QueryCache ¶
QueryCache 查询缓存结果,返回QueryData结构
cacheTag: 缓存标签 startIdx: 起始行数 rowCount: 查询的行数
func (*Conn) QueryCacheJSON
deprecated
func (*Conn) QueryCacheMultirowPage ¶
func (d *Conn) QueryCacheMultirowPage(cacheTag string, startRow, rowsCount, keyColumeID int) *QueryData
QueryCacheMultirowPage 查询多行分页缓存结果,返回QueryData结构
cacheTag: 缓存标签 startIdx: 起始行数 rowCount: 查询的行数
func (*Conn) QueryCachePB2
deprecated
func (*Conn) QueryFirstPage ¶
QueryFirstPage 执行查询语句,返回第一页数据,不返回总数,用于大数据集的首页查询,可通过缓存继续读取后续数据
s: 查询语句 rowsCount: 需要返回的行数 params: 参数
func (*Conn) QueryFirstPageByDB ¶
func (d *Conn) QueryFirstPageByDB(dbidx int, s string, rowsCount int, params ...interface{}) (*QueryData, error)
QueryFirstPageByDB 执行查询语句,返回第一页数据,不返回总数,用于大数据集的首页查询,可通过缓存继续读取后续数据,可指定查询的数据库名称
dbidx:执行语句的数据库名称,需要是dbidxs()里面的合法数据库名称 s: 查询语句 rowsCount: 需要返回的行数 params: 参数
func (*Conn) QueryLimit ¶
func (d *Conn) QueryLimit(s string, startRow, rowsCount int, params ...interface{}) (*QueryData, error)
QueryLimit 执行查询语句,依据startRow和rowsCount自动追加between或limit关键字,用于快速改造原Query方法的结果集
s: sql语句 startRow: 起始行号,0开始 rowsCount: 返回数据行数,0-返回全部 params: 查询参数,对应查询语句中的`?`占位符
func (*Conn) QueryMultirowPage ¶
func (d *Conn) QueryMultirowPage(dbidx int, s string, rowsCount int, keyColumeID int, params ...interface{}) (query *QueryData, err error)
QueryMultirowPage 执行查询语句,返回QueryData结构,检测多个字段进行换行计数 如: 采用join关联主表和子表进行查询时,主表的字段会重复,因此应该依据主表字段的变化计算有效记录数据
dbidx: 数据库名称 s: sql语句 keyColumeID: 用于分页的关键列id rowsCount: 返回数据行数,0-返回全部 params: 查询参数,对应查询语句中的`?`占位符
func (*Conn) QueryPB2Chan
deprecated
func (d *Conn) QueryPB2Chan(s string, rowsCount int, params ...interface{}) <-chan *QueryDataChan
QueryPB2Chan 查询v2,采用线程+channel优化超大数据集分页的首页返回时间
Deprecated: use Query() or QueryFirstPage() or QueryBig()
func (*Conn) SQLDBByName ¶
GetDBIdx 连接多个数据库的时候,设置默认的数据库名称
func (*Conn) SetDefaultDB ¶
SetDefaultDB 连接多个数据库的时候,设置默认的数据库名称
func (*Conn) TablesAreNew ¶
type Opt ¶
type Opt struct { // 数据驱动 DriverType Drive // 服务地址 Server string // 用户名 User string // 密码 Passwd string // tls 参数 TLS string // 数据库名称 DBNames []string // 数据库初始化脚本,和DBName对应 InitScripts []string // 设置缓存 QueryCache cache.Cache[*QueryData] // 日志 Logger logger.Logger // 执行超时 Timeout time.Duration // contains filtered or unexported fields }
type QueryData ¶
type QueryData struct { Rows []*QueryDataRow `json:"rows,omitempty"` Columns []string `json:"columns,omitempty"` CacheTag string `json:"cache_tag,omitempty"` Total int `json:"total,omitempty"` }
QueryData 数据集
type QueryDataChan ¶
QueryDataChan chan方式返回首页数据
type QueryDataRow ¶
type QueryDataRow struct { // Deprecated: will removed in a future version, use VCells Cells []string `json:"cells,omitempty"` VCells []*config.Value `json:"vcells,omitempty"` }
QueryDataRow 数据行
func (*QueryDataRow) JSON ¶
func (d *QueryDataRow) JSON() string