Documentation ¶
Overview ¶
Package db : 数据库模块,封装了常用方法,可缓存数据,可依据配置自动创建myisam引擎的子表,支持mysql和sqlserver
Index ¶
- Constants
- type QueryData
- type QueryDataChan
- type QueryDataChanWorker
- type QueryDataRow
- type SQLInterface
- type SQLPool
- func (p *SQLPool) Exec(s string, params ...interface{}) (rowAffected, insertID int64, err error)
- func (p *SQLPool) ExecBatch(s []string) (err error)
- func (p *SQLPool) ExecPrepare(s string, paramNum int, params ...interface{}) (err error)
- func (p *SQLPool) ExecPrepareV2(s string, paramNum int, params ...interface{}) (int64, []int64, error)
- func (p *SQLPool) ExecV2(s string, params ...interface{}) (rowAffected, insertID int64, err error)
- func (p *SQLPool) IsReady() bool
- func (p *SQLPool) MergeTable(tableName string, maxSubTables int) error
- func (p *SQLPool) New(tls ...string) error
- func (p *SQLPool) QueryCacheJSON(cacheTag string, startRow, rowsCount int) string
- func (p *SQLPool) QueryCacheMultirowPage(cacheTag string, startRow, rowsCount, keyColumeID int) *QueryData
- func (p *SQLPool) QueryCachePB2(cacheTag string, startRow, rowsCount int) *QueryData
- func (p *SQLPool) QueryJSON(s string, rowsCount int, params ...interface{}) (string, error)
- func (p *SQLPool) QueryLimit(s string, startRow, rowsCount int, params ...interface{}) (*QueryData, error)
- func (p *SQLPool) QueryMultirowPage(s string, rowsCount int, keyColumeID int, params ...interface{}) (query *QueryData, err error)
- func (p *SQLPool) QueryOne(s string, colNum int, params ...interface{}) (js string, err error)
- func (p *SQLPool) QueryOnePB2(s string, colNum int, params ...interface{}) (query *QueryData, err error)
- func (p *SQLPool) QueryPB2(s string, rowsCount int, params ...interface{}) (query *QueryData, err error)
- func (p *SQLPool) QueryPB2Big(s string, startRow, rowsCount int, params ...interface{}) (*QueryData, error)
- func (p *SQLPool) QueryPB2Chan(s string, rowsCount int, params ...interface{}) <-chan *QueryDataChan
- func (p *SQLPool) ShowTableInfo(tableName string) (string, string, int64, int64, error)
Constants ¶
const ( // DriverMYSQL mysql DriverMYSQL driveType = iota // DriverMSSQL mssql DriverMSSQL // DriverOracle oracle DriverOracle )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type QueryData ¶
type QueryData struct { Total int32 `json:"total,omitempty"` CacheTag string `json:"cache_tag,omitempty"` Rows []*QueryDataRow `json:"rows,omitempty"` Columns []string `json:"columns,omitempty"` }
QueryData 数据集
type QueryDataChan ¶ added in v1.3.3
QueryDataChan chan方式返回首页数据
type QueryDataChanWorker ¶ added in v1.3.3
type QueryDataChanWorker struct { QDC chan *QueryDataChan RowsCount int Strsql string Params []interface{} // contains filtered or unexported fields }
QueryDataChanWorker chan方式数据库访问
type QueryDataRow ¶
type QueryDataRow struct {
Cells []string `json:"cells,omitempty"`
}
QueryDataRow 数据行
type SQLInterface ¶
type SQLInterface interface { New(...string) error IsReady() bool QueryCacheJSON(string, int, int) string QueryCachePB2(string, int, int) *QueryData QueryOnePB2(string, int, ...interface{}) (*QueryData, error) QueryPB2(string, int, ...interface{}) (*QueryData, error) Exec(string, ...interface{}) (int64, int64, error) ExecPrepare(string, int, ...interface{}) error ExecBatch([]string) error }
SQLInterface 数据库接口
type SQLPool ¶
type SQLPool struct { // 服务地址 Server string // 用户名 User string // 密码 Passwd string // 数据库名称 DataBase string // 数据驱动 DriverType driveType // IO超时(秒) Timeout int // 最大连接数 MaxOpenConns int // 日志 Logger logger.Logger // 是否启用缓存功能,缓存30分钟有效 EnableCache bool // 缓存路径 CacheDir string // 缓存文件前缀 CacheHead string // contains filtered or unexported fields }
SQLPool 数据库连接池
func (*SQLPool) Exec ¶
Exec 执行语句(insert,delete,update),返回(影响行数,insertId,error),使用官方的语句参数分离写法
s: sql语句
params: 查询参数,对应查询语句中的`?`占位符
func (*SQLPool) ExecBatch ¶
ExecBatch (maybe unsafe)事务执行语句(insert,delete,update)
s: sql语句
paramNum: 占位符数量,为0时自动计算sql语句中`?`的数量
params: 查询参数,对应查询语句中的`?`占位符
func (*SQLPool) ExecPrepare ¶
ExecPrepare 批量执行占位符语句 返回 err,使用官方的语句参数分离写法,用于批量执行相同语句
s: sql语句
paramNum: 占位符数量,为0时自动计算sql语句中`?`的数量
params: 查询参数,对应查询语句中的`?`占位符
func (*SQLPool) ExecPrepareV2 ¶ added in v1.3.3
func (p *SQLPool) ExecPrepareV2(s string, paramNum int, params ...interface{}) (int64, []int64, error)
ExecPrepareV2 批量执行语句(insert,delete,update),返回(影响行数,insertId,error),使用官方的语句参数分离写法,用于批量执行相同语句
s: sql语句
paramNum: 占位符数量,为0时自动计算sql语句中`?`的数量
params: 查询参数,对应查询语句中的`?`占位符
func (*SQLPool) ExecV2 ¶ added in v1.3.3
ExecV2 事务执行语句(insert,delete,update),可回滚,返回(影响行数,insertId,error),使用官方的语句参数分离写法
s: sql语句
params: 查询参数,对应查询语句中的`?`占位符
func (*SQLPool) MergeTable ¶
MergeTable 进行分表操作
func (*SQLPool) QueryCacheJSON ¶
QueryCacheJSON 查询缓存结果,返回json字符串
cacheTag: 缓存标签
startIdx: 起始行数
rowCount: 查询的行数
func (*SQLPool) QueryCacheMultirowPage ¶
func (p *SQLPool) QueryCacheMultirowPage(cacheTag string, startRow, rowsCount, keyColumeID int) *QueryData
QueryCacheMultirowPage 查询多行分页缓存结果,返回QueryData结构
cacheTag: 缓存标签
startIdx: 起始行数
rowCount: 查询的行数
func (*SQLPool) QueryCachePB2 ¶
QueryCachePB2 查询缓存结果,返回QueryData结构
cacheTag: 缓存标签
startIdx: 起始行数
rowCount: 查询的行数
func (*SQLPool) QueryJSON ¶
QueryJSON 执行查询语句,返回结果集的json字符串
s: sql语句
rowsCount: 返回数据行数,0-返回全部
params: 查询参数,对应查询语句中的`?`占位符
func (*SQLPool) QueryLimit ¶
func (p *SQLPool) QueryLimit(s string, startRow, rowsCount int, params ...interface{}) (*QueryData, error)
QueryLimit 执行查询语句,限制返回行数
s: sql语句
startRow: 起始行号,0开始
rowsCount: 返回数据行数,0-返回全部
params: 查询参数,对应查询语句中的`?`占位符
func (*SQLPool) QueryMultirowPage ¶
func (p *SQLPool) QueryMultirowPage(s string, rowsCount int, keyColumeID int, params ...interface{}) (query *QueryData, err error)
QueryMultirowPage 执行查询语句,返回QueryData结构,检测多个字段进行换行计数
s: sql语句
keyColumeID: 用于分页的关键列id
rowsCount: 返回数据行数,0-返回全部
params: 查询参数,对应查询语句中的`?`占位符
func (*SQLPool) QueryOne ¶
QueryOne 执行查询语句,返回首行结果的json字符串,`{row:[...]}`,该方法不缓存结果
s: sql语句
colNum: 列数量
params: 查询参数,对应查询语句中的`?`占位符
func (*SQLPool) QueryOnePB2 ¶ added in v1.3.3
func (p *SQLPool) QueryOnePB2(s string, colNum int, params ...interface{}) (query *QueryData, err error)
QueryOnePB2 执行查询语句,返回首行结果的QueryData结构,该方法不缓存结果
s: sql语句
colNum: 列数量
params: 查询参数,对应查询语句中的`?`占位符
func (*SQLPool) QueryPB2 ¶
func (p *SQLPool) QueryPB2(s string, rowsCount int, params ...interface{}) (query *QueryData, err error)
QueryPB2 执行查询语句,返回QueryData结构
s: sql语句
rowsCount: 返回数据行数,0-返回全部
params: 查询参数,对应查询语句中的`?`占位符
func (*SQLPool) QueryPB2Big ¶
func (p *SQLPool) QueryPB2Big(s string, startRow, rowsCount int, params ...interface{}) (*QueryData, error)
QueryPB2Big 可尝试用于大数据集的首页查询,一定程度加快速度,原查询时间在2s内的没必要使用该方法
s: sql语句
startRow: 起始行号,0开始
rowsCount: 返回数据行数,0-返回全部
params: 查询参数,对应查询语句中的`?`占位符
func (*SQLPool) QueryPB2Chan ¶ added in v1.3.3
func (p *SQLPool) QueryPB2Chan(s string, rowsCount int, params ...interface{}) <-chan *QueryDataChan
QueryPB2Chan 查询v2,采用线程+channel优化超大数据集分页的首页返回时间
s: sql语句
rowsCount: 返回数据行数,0-返回全部
params: 查询参数,对应查询语句中的`?`占位符