dbs

package
v0.0.0-...-31a7bc8 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 29, 2024 License: MIT Imports: 23 Imported by: 12

Documentation

Index

Constants

View Source
const (
	ValueTypeInvalid byte = iota
	ValueTypeBool
	ValueTypeNumber
	ValueTypeString
	ValueTypeBytes
	ValueTypeJSON
	ValueTypeTime // @TODO 暂未实现
)
View Source
const (
	QueryActionFind           = 1
	QueryActionDelete         = 2
	QueryActionInsert         = 3
	QueryActionReplace        = 4
	QueryActionInsertOrUpdate = 5
	QueryActionUpdate         = 6
	QueryActionExec           = 7
)
View Source
const (
	QuerySubActionCount = 1
	QuerySubActionSum   = 2
	QuerySubActionMax   = 3
	QuerySubActionMin   = 4
	QuerySubActionAvg   = 5
)
View Source
const (
	QueryOrderDefault = 0
	QueryOrderAsc     = 1
	QueryOrderDesc    = 2
)
View Source
const (
	QueryJoinDefault = 0
	QueryJoinLeft    = 1
	QueryJoinRight   = 2
)
View Source
const (
	QueryLockShareMode = "LOCK IN SHARE MODE"
	QueryLockForUpdate = "FOR UPDATE"
)
View Source
const (
	QuerySqlCacheDefault = 0
	QuerySqlCacheOn      = 1
	QuerySqlCacheOff     = 2
)
View Source
const (
	QueryForAll     = ""
	QueryForJoin    = "JOIN"
	QueryForOrderBy = "ORDER BY"
	QueryForGroupBy = "GROUP BY"
)

Variables

View Source
var ErrNotFound = errors.New("record not found")

ErrNotFound 错误信息

View Source
var (
	ShowPreparedStatements = false
)

Functions

func IsPrepareError

func IsPrepareError(err error) bool

func NewDAO

func NewDAO(daoPointer any) any

NewDAO 初始化DAO

func NotifyReady

func NotifyReady()

NotifyReady 调用Ready回调

func OnReady

func OnReady(f func())

OnReady 添加Ready的回调函数

func OnReadyDone

func OnReadyDone(f func())

OnReadyDone 添加Ready完成的回调函数

Types

type Config

type Config struct {
	Default struct {
		DB     string `yaml:"db"`
		Prefix string `yaml:"prefix"`
	} `yaml:"default"`

	DBs    map[string]*DBConfig `yaml:"dbs"`
	Fields map[string][]string  `yaml:"fields"`
}

func GlobalConfig

func GlobalConfig() *Config

type DAO

type DAO struct {
	DAOObject
}

type DAOObject

type DAOObject struct {
	Instance *DB

	DB     string
	Table  string
	PkName string
	Model  any
	// contains filtered or unexported fields
}

func (*DAOObject) Delete

func (this *DAOObject) Delete(tx *Tx, pk any) (rowsAffected int64, err error)

Delete 删除

func (*DAOObject) Exist

func (this *DAOObject) Exist(tx *Tx, pk any) (bool bool, err error)

Exist 检查是否存在

func (*DAOObject) Find

func (this *DAOObject) Find(tx *Tx, pk any) (modelPtr any, err error)

Find 查找

func (*DAOObject) Init

func (this *DAOObject) Init() error

Init 初始化

func (*DAOObject) NotifyDelete

func (this *DAOObject) NotifyDelete() error

NotifyDelete 触发Delete回调

func (*DAOObject) NotifyInsert

func (this *DAOObject) NotifyInsert() error

NotifyInsert 触发Insert回调

func (*DAOObject) NotifyUpdate

func (this *DAOObject) NotifyUpdate() error

NotifyUpdate 触发Update回调

func (*DAOObject) Object

func (this *DAOObject) Object() *DAOObject

Object 取得封装的对象

func (*DAOObject) OnDelete

func (this *DAOObject) OnDelete(callback func() error)

OnDelete 添加Delete回调

func (*DAOObject) OnInsert

func (this *DAOObject) OnInsert(callback func() error)

OnInsert 添加Insert回调

func (*DAOObject) OnUpdate

func (this *DAOObject) OnUpdate(callback func() error)

OnUpdate 添加Update回调

func (*DAOObject) Query

func (this *DAOObject) Query(tx *Tx) *Query

Query 构造查询

func (*DAOObject) Save

func (this *DAOObject) Save(tx *Tx, operatorPtr any) (err error)

Save 保存

func (*DAOObject) SaveInt64

func (this *DAOObject) SaveInt64(tx *Tx, operatorPtr any) (pkValue int64, err error)

SaveInt64 保存并返回整型ID

type DAOWrapper

type DAOWrapper interface {
	Object() *DAOObject
}

type DB

type DB struct {
	// contains filtered or unexported fields
}

func Default

func Default() (*DB, error)

Default 默认的数据库实例

func Instance

func Instance(dbId string) (*DB, error)

Instance 根据ID获取数据库实例 如果上下文中已经获得了一个实例,则返回此实例

func NewInstance

func NewInstance(dbId string) (*DB, error)

NewInstance 根据ID获取一个新的数据库实例 不会从上下文的缓存中读取

func NewInstanceFromConfig

func NewInstanceFromConfig(config *DBConfig) (*DB, error)

NewInstanceFromConfig 从配置中构造实例

func (*DB) Begin

func (this *DB) Begin() (*Tx, error)

Begin 开始一个事务

func (*DB) Close

func (this *DB) Close() error

func (*DB) Config

func (this *DB) Config() (*DBConfig, error)

func (*DB) Driver

func (this *DB) Driver() string

func (*DB) Exec

func (db *DB) Exec(query string, params ...any) (sql.Result, error)

func (*DB) FindCol

func (this *DB) FindCol(colIndex int, query string, args ...any) (any, error)

func (*DB) FindFullTable

func (this *DB) FindFullTable(tableName string) (*Table, error)

FindFullTable 获取数据表,并包含分区,索引信息

func (*DB) FindFunctions

func (this *DB) FindFunctions() ([]*Function, error)

FindFunctions 查找所有函数

func (*DB) FindOne

func (this *DB) FindOne(query string, args ...any) (maps.Map, error)

func (*DB) FindOnes

func (this *DB) FindOnes(query string, args ...any) (ones []maps.Map, columnNames []string, err error)

func (*DB) FindPreparedOnes

func (this *DB) FindPreparedOnes(query string, args ...any) (results []maps.Map, columnNames []string, err error)

func (*DB) FindTable

func (this *DB) FindTable(tableName string) (*Table, error)

FindTable 获取数据表,并包含基本信息

func (*DB) Id

func (this *DB) Id() string

func (*DB) Name

func (this *DB) Name() string

func (*DB) Prepare

func (this *DB) Prepare(query string) (*Stmt, error)

func (*DB) PrepareOnce

func (this *DB) PrepareOnce(query string) (*Stmt, bool, error)

func (*DB) Raw

func (this *DB) Raw() *sql.DB

Raw 取得原始的数据库连接句柄

func (*DB) RunTx

func (this *DB) RunTx(callback func(tx *Tx) error) error

RunTx 在函数中执行一个事务

func (*DB) SetConfig

func (this *DB) SetConfig(config *DBConfig)

func (*DB) StmtManager

func (this *DB) StmtManager() *StmtManager

StmtManager Get StmtManager

func (*DB) TableNames

func (this *DB) TableNames() ([]string, error)

TableNames 取得所有表格名

func (*DB) TablePrefix

func (this *DB) TablePrefix() string

TablePrefix 取得表前缀

type DBConfig

type DBConfig struct {
	Driver      string `yaml:"driver"`
	Dsn         string `yaml:"dsn"`
	Prefix      string `yaml:"prefix,omitempty"`
	Connections struct {
		Pool         int           `yaml:"pool"`
		Max          int           `yaml:"max"`
		Life         string        `yaml:"life"`
		LifeDuration time.Duration `yaml:",omitempty"`
	} `yaml:"connections"`

	Models struct {
		Package string `yaml:"package"`
	} `yaml:"models"`
}

type DBFunc

type DBFunc struct {
	Clause string
	Values []any
}

func FuncAbs

func FuncAbs(x any) *DBFunc

func FuncAcos

func FuncAcos(x any) *DBFunc

func FuncAscii

func FuncAscii(str any) *DBFunc

func FuncAsin

func FuncAsin(x any) *DBFunc

func FuncAtan

func FuncAtan(x any) *DBFunc

func FuncAtanXY

func FuncAtanXY(x any, y any) *DBFunc

func FuncBin

func FuncBin(str any) *DBFunc

func FuncBitLength

func FuncBitLength(str any) *DBFunc

func FuncConcat

func FuncConcat(strs ...any) *DBFunc

func FuncConcatWs

func FuncConcatWs(separator any, strs ...any) *DBFunc

func FuncFindInSet

func FuncFindInSet(str any, strList any) *DBFunc

func FuncFromUnixtime

func FuncFromUnixtime(timestamp any) *DBFunc

func FuncFromUnixtimeFormat

func FuncFromUnixtimeFormat(timestamp any, format any) *DBFunc

func FuncLeft

func FuncLeft(str any, len any) *DBFunc

func FuncLength

func FuncLength(str any) *DBFunc

func FuncLower

func FuncLower(str any) *DBFunc

func FuncLpad

func FuncLpad(str any, len any, padStr any) *DBFunc

func FuncLtrim

func FuncLtrim(str any) *DBFunc

func FuncRand

func FuncRand() *DBFunc

func FuncRandN

func FuncRandN(seed any) *DBFunc

func FuncRepeat

func FuncRepeat(str any, count any) *DBFunc

func FuncReplace

func FuncReplace(str any, fromStr any, toStr any) *DBFunc

func FuncReverse

func FuncReverse(str any) *DBFunc

func FuncRight

func FuncRight(str any, len any) *DBFunc

func FuncRpad

func FuncRpad(str any, len any, padStr any) *DBFunc

func FuncRtrim

func FuncRtrim(str any) *DBFunc

func FuncSubstring

func FuncSubstring(str any, pos any) *DBFunc

func FuncSubstringIndex

func FuncSubstringIndex(str any, delim any, count any) *DBFunc

func FuncSubstringLen

func FuncSubstringLen(str any, pos any, len any) *DBFunc

func FuncTrim

func FuncTrim(str any) *DBFunc

func FuncUpper

func FuncUpper(str any) *DBFunc

type DBFuncParams

type DBFuncParams []any

type Field

type Field struct {
	Name               string       // 字段名
	Type               string       // 字段类型
	FullType           string       // 完整的字段类型,包含长度等附加信息
	DataKind           reflect.Kind // 数据类型
	Length             int          // @TODO 暂未实现
	DefaultValueString string
	DefaultValue       any
	AutoIncrement      bool
	IsPrimaryKey       bool   // 是否为主键
	IsNotNull          bool   // 是否为非NULL
	IsUnsigned         bool   // 是否为无符号
	Comment            string // 字段的注释说明
	Collation          string // 字符集信息
	ValueType          byte   // 值类型,ValueType*
	Extra              string

	MappingName     string // 映射的名称
	MappingKindName string // 映射的数据类型字符串格式
}

func (*Field) Definition

func (this *Field) Definition() string

func (*Field) ValueTypeName

func (this *Field) ValueTypeName() string

type FieldName

type FieldName = string

type Function

type Function struct {
	Name         string
	Definer      string
	SecurityType string
	Comment      string
	Code         string
}

数据库函数定义

type JSON

type JSON []byte

func (JSON) Bytes

func (this JSON) Bytes() []byte

func (JSON) IsNotNull

func (this JSON) IsNotNull() bool

func (JSON) IsNull

func (this JSON) IsNull() bool

func (JSON) Len

func (this JSON) Len() int

func (JSON) String

func (this JSON) String() string

func (JSON) UnmarshalTo

func (this JSON) UnmarshalTo(ptr any) error

type Model

type Model struct {
	CountFields int
	Attrs       []string
	Fields      []string
	Kinds       []reflect.Kind
	KindsMap    map[string]reflect.Kind
	Type        reflect.Type
}

@TODO 支持 pk, notNull, default 等tag

func NewModel

func NewModel(modelPointer any) *Model

type Query

type Query struct {
	// contains filtered or unexported fields
}

func NewQuery

func NewQuery(model any) *Query

func (*Query) AsSQL

func (this *Query) AsSQL() (string, error)

AsSQL 将查询转换为SQL语句

func (*Query) Asc

func (this *Query) Asc(fields ...string) *Query

Asc 添加正序排序

func (*Query) AscPk

func (this *Query) AscPk() *Query

AscPk 按照主键倒排序

func (*Query) Attr

func (this *Query) Attr(name string, value any) *Query

Attr 设置查询的字段

func (*Query) Attrs

func (this *Query) Attrs(attrs maps.Map) *Query

Attrs 设置一组查询的字段

func (*Query) Avg

func (this *Query) Avg(attr string, defaultValue float64) (float64, error)

Avg 执行AVG查询

func (*Query) Between

func (this *Query) Between(field string, min any, max any) *Query

Between 设置between条件

func (*Query) Count

func (this *Query) Count() (int64, error)

Count 执行COUNT查询

func (*Query) CountAttr

func (this *Query) CountAttr(attr string) (int64, error)

CountAttr 对某个字段进行COUNT查询

func (*Query) CountInt

func (this *Query) CountInt() (int, error)

CountInt 执行Count查询并返回int

func (*Query) DAO

func (this *Query) DAO(dao *DAOObject) *Query

DAO 设置DAO

func (*Query) DB

func (this *Query) DB(db *DB) *Query

DB 设置数据库实例

func (*Query) Debug

func (this *Query) Debug(debug bool) *Query

Debug 设置是否开启调试模式 如果开启调试模式,会打印SQL语句

func (*Query) Decrease

func (this *Query) Decrease(field string, count int) *Query

Decrease 减少某个字段的数值

func (*Query) Delete

func (this *Query) Delete() (rowsAffected int64, err error)

Delete 执行DELETE

func (*Query) DeleteQuickly

func (this *Query) DeleteQuickly() error

DeleteQuickly 删除Delete,但不返回影响的行数

func (*Query) Desc

func (this *Query) Desc(fields ...string) *Query

Desc 添加倒序排序

func (*Query) DescPk

func (this *Query) DescPk() *Query

DescPk 按照主键倒排序

func (*Query) Exec

func (this *Query) Exec() (*Result, error)

Exec 执行查询

func (*Query) Exist

func (this *Query) Exist() (bool, error)

Exist 判断记录是否存在

func (*Query) Filter

func (this *Query) Filter(filterFn func(one maps.Map) bool) *Query

Filter 指定筛选程序

func (*Query) Find

func (this *Query) Find() (any, error)

Find 查询单条数据,返回模型对象

func (*Query) FindAll

func (this *Query) FindAll() ([]any, error)

FindAll 查询一组数据, 并返回模型数据

func (*Query) FindBoolCol

func (this *Query) FindBoolCol() (bool, error)

FindBoolCol 查询单个字段值并返回bool值

func (*Query) FindBytesCol

func (this *Query) FindBytesCol() ([]byte, error)

FindBytesCol 查询单个字段值并返回字节Slice

func (*Query) FindCol

func (this *Query) FindCol(defaultValue any) (any, error)

FindCol 查询单个字段值

func (*Query) FindFloat32Col

func (this *Query) FindFloat32Col(defaultValue float32) (float32, error)

FindFloat32Col 查询某个字段值并返回32位浮点型

func (*Query) FindFloat64Col

func (this *Query) FindFloat64Col(defaultValue float64) (float64, error)

FindFloat64Col 查询某个字段值并返回64位浮点型

func (*Query) FindInt64Col

func (this *Query) FindInt64Col(defaultValue int64) (int64, error)

FindInt64Col 查询某个字段值并返回64位整型

func (*Query) FindIntCol

func (this *Query) FindIntCol(defaultValue int) (int, error)

FindIntCol 查询某个字段值并返回整型

func (*Query) FindJSONCol

func (this *Query) FindJSONCol() ([]byte, error)

FindJSONCol 查询单个字段值并返回JSON slice

func (*Query) FindOne

func (this *Query) FindOne() (results maps.Map, columnNames []string, err error)

FindOne 查找一行数据

func (*Query) FindOnes

func (this *Query) FindOnes() (ones []maps.Map, columnNames []string, err error)

FindOnes 查找一组数据,返回map数据

func (*Query) FindStringCol

func (this *Query) FindStringCol(defaultValue string) (string, error)

FindStringCol 查询单个字段值并返回字符串

func (*Query) For

func (this *Query) For(clause string) *Query

For 针对的操作 和 UserIndex, IgnoreIndex, ForceIndex 配合使用

func (*Query) ForceIndex

func (this *Query) ForceIndex(index ...string) *Query

ForceIndex 强制使用索引

func (*Query) Group

func (this *Query) Group(field string, order ...int) *Query

Group 设置Group查询条件

func (*Query) Gt

func (this *Query) Gt(attr string, value any) *Query

Gt 设置大于条件

func (*Query) Gte

func (this *Query) Gte(attr string, value any) *Query

Gte 设置大于等于条件

func (*Query) HasJoins

func (this *Query) HasJoins() bool

HasJoins 判断是否有联合查询条件

func (*Query) Having

func (this *Query) Having(cond string) *Query

Having 设置Having条件

func (*Query) IgnoreIndex

func (this *Query) IgnoreIndex(index ...string) *Query

IgnoreIndex 屏蔽索引

func (*Query) Increase

func (this *Query) Increase(field string, count int) *Query

Increase 增加某个字段的数值

func (*Query) Insert

func (this *Query) Insert() (lastInsertId int64, err error)

Insert 执行INSERT

func (*Query) InsertOrUpdate

func (this *Query) InsertOrUpdate(insertingValues maps.Map, updatingValues maps.Map) (rowsAffected int64, lastInsertId int64, err error)

InsertOrUpdate 插入或更改 依据要插入的数据中的unique键来决定是插入数据还是替换数据

func (*Query) InsertOrUpdateQuickly

func (this *Query) InsertOrUpdateQuickly(insertingValues maps.Map, updatingValues maps.Map) error

InsertOrUpdateQuickly 插入或更改 依据要插入的数据中的unique键来决定是插入数据还是替换数据

func (*Query) JSONContains

func (this *Query) JSONContains(attr string, value any) *Query

JSONContains JSON包含

func (*Query) Join

func (this *Query) Join(dao any, joinType int, on string) *Query

Join 设置单个联合查询条件

func (*Query) Like

func (this *Query) Like(field string, expr string) *Query

Like 设置like查询条件 对表达式自动加上百分号, % ... %

func (*Query) Limit

func (this *Query) Limit(size int64) *Query

Limit 设置Limit条件,同size()

func (*Query) Lock

func (this *Query) Lock(lock string) *Query

Lock 行锁定

func (*Query) Lt

func (this *Query) Lt(attr string, value any) *Query

Lt 设置小于条件

func (*Query) Lte

func (this *Query) Lte(attr string, value any) *Query

Lte 设置小于等于条件

func (*Query) Map

func (this *Query) Map(mapFn func(one maps.Map) maps.Map) *Query

Map 指定映射程序

func (*Query) Max

func (this *Query) Max(attr string, defaultValue float64) (float64, error)

Max 执行MAX查询

func (*Query) MaxInt

func (this *Query) MaxInt(attr string, defaultValue int) (int, error)

MaxInt 执行MAX查询

func (*Query) MaxInt64

func (this *Query) MaxInt64(attr string, defaultValue int64) (int64, error)

MaxInt64 执行MAX查询

func (*Query) Min

func (this *Query) Min(attr string, defaultValue float64) (float64, error)

Min 执行MIN查询

func (*Query) Neq

func (this *Query) Neq(attr string, value any) *Query

Neq 设置不等于条件

func (*Query) NoPk

func (this *Query) NoPk(noPk bool) *Query

NoPk 设置是否返回主键 默认find或findAll查询中返回主键,以便后续可以用此主键值操作对象

func (*Query) Offset

func (this *Query) Offset(offset int64) *Query

Offset 设置偏移量

func (*Query) Order

func (this *Query) Order(field any, orderType int) *Query

Order 添加排序条件

func (*Query) Param

func (this *Query) Param(name string, value any) *Query

Param 设定查询语句中的参数值 只有指定where和sql后,才能使用该方法

func (*Query) Partitions

func (this *Query) Partitions(partitions ...string) *Query

Partitions 指定分区

func (*Query) Pk

func (this *Query) Pk(pks ...any) *Query

Pk 设置要查询的主键值

func (*Query) PkName

func (this *Query) PkName(pkName string) *Query

PkName 设置主键名 @TODO 支持联合主键

func (*Query) Replace

func (this *Query) Replace() (rowsAffected int64, lastInsertId int64, err error)

Replace 执行REPLACE

func (*Query) Result

func (this *Query) Result(fields ...any) *Query

Result 设置查询要返回的字段 字段名中支持星号(*)通配符

func (*Query) ResultExcept

func (this *Query) ResultExcept(fields ...string) *Query

ResultExcept 设置查询不需要返回的字段

func (*Query) ResultPk

func (this *Query) ResultPk() *Query

ResultPk 设置返回主键字段值

func (*Query) Reuse

func (this *Query) Reuse(canReuse bool) *Query

Reuse 是否可以重用,对于根据参数变化而变化的查询,需要设置为false

func (*Query) SQL

func (this *Query) SQL(sql string) *Query

SQL 指定SQL语句

func (*Query) SQLCache

func (this *Query) SQLCache(sqlCache int) *Query

SQLCache 是否开启SQL Cache 只有在SELECT时才有作用

func (*Query) Set

func (this *Query) Set(field string, value any) *Query

Set 设置字段值,以便用于删除和修改操作

func (*Query) Sets

func (this *Query) Sets(values map[string]any) *Query

Sets 设置一组字段值,以便用于删除和修改操作

func (*Query) Size

func (this *Query) Size(size int64) *Query

Size 设置Limit条件,同limit()

func (*Query) Slice

func (this *Query) Slice(slicePtr any) *Query

Slice 设置返回的Slice指针 在FindAll()方法中生效

func (*Query) State

func (this *Query) State(state any) *Query

State 设置状态查询快捷函数 相当于:Attr("state", state)

func (*Query) Sum

func (this *Query) Sum(attr string, defaultValue float64) (float64, error)

Sum 执行SUM查询

func (*Query) SumInt

func (this *Query) SumInt(attr string, defaultValue int) (int, error)

SumInt 执行SUM查询,并返回Int

func (*Query) SumInt64

func (this *Query) SumInt64(attr string, defaultValue int64) (int64, error)

SumInt64 执行SUM查询,并返回Int64

func (*Query) Table

func (this *Query) Table(table string) *Query

Table 设置表名

func (*Query) Tx

func (this *Query) Tx(tx *Tx) *Query

Tx 设置事务

func (*Query) Update

func (this *Query) Update() (rowsAffected int64, err error)

Update 执行UPDATE

func (*Query) UpdateQuickly

func (this *Query) UpdateQuickly() error

UpdateQuickly 执行UPDATE

func (*Query) UseIndex

func (this *Query) UseIndex(index ...string) *Query

UseIndex 使用索引

func (*Query) Where

func (this *Query) Where(wheres ...string) *Query

Where 设置where条件 @TODO 支持Query、SQL

type QueryGroup

type QueryGroup struct {
	Field string
	Order int
}

type QueryJoin

type QueryJoin struct {
	DAO  *DAOObject
	Type int
	On   string
}

type QueryOrder

type QueryOrder struct {
	Field any
	Type  int
}

type QueryUseIndex

type QueryUseIndex struct {
	Keyword string
	For     string
	Indexes []string
}

type Result

type Result struct {
	// contains filtered or unexported fields
}

func NewResult

func NewResult(result sql.Result) *Result

func (*Result) LastInsertId

func (this *Result) LastInsertId() (int64, error)

func (*Result) RowsAffected

func (this *Result) RowsAffected() (int64, error)

type Rows

type Rows struct {
	// contains filtered or unexported fields
}

func NewRows

func NewRows(rawRows *sql.Rows) *Rows

func (*Rows) Close

func (this *Rows) Close() error

func (*Rows) Columns

func (this *Rows) Columns() ([]string, error)

func (*Rows) FindCol

func (this *Rows) FindCol(colIndex int) (colValue any, err error)

func (*Rows) FindOne

func (this *Rows) FindOne() (one maps.Map, err error)

func (*Rows) FindOnes

func (this *Rows) FindOnes() (ones []maps.Map, err error)

type SQL

type SQL string

type SQLExecutor

type SQLExecutor interface {
	// PrepareOnce 可重用的Prepare
	PrepareOnce(query string) (stmt *Stmt, cached bool, err error)

	Exec(query string, args ...any) (result sql.Result, err error)

	FindOnes(query string, args ...any) (ones []maps.Map, columnNames []string, err error)
}

type Stmt

type Stmt struct {
	// contains filtered or unexported fields
}

Stmt SQL语句

func NewStmt

func NewStmt(stmt *sql.Stmt) *Stmt

NewStmt 构造

func (*Stmt) AccessAt

func (this *Stmt) AccessAt() int64

AccessAt 获得访问时间 用来对比是否可以释放

func (*Stmt) Close

func (this *Stmt) Close() error

Close 关闭

func (*Stmt) Exec

func (this *Stmt) Exec(args ...any) (sql.Result, error)

func (*Stmt) FindCol

func (this *Stmt) FindCol(colIndex int, args ...any) (colValue any, err error)

func (*Stmt) FindOne

func (this *Stmt) FindOne(args ...any) (one maps.Map, err error)

func (*Stmt) FindOnes

func (this *Stmt) FindOnes(args ...any) (ones []maps.Map, columnNames []string, err error)

func (*Stmt) Query

func (this *Stmt) Query(args ...any) (*sql.Rows, error)

func (*Stmt) Raw

func (this *Stmt) Raw() *sql.Stmt

Raw 获取原始的语句

type StmtManager

type StmtManager struct {
	// contains filtered or unexported fields
}

func NewStmtManager

func NewStmtManager() *StmtManager

func (*StmtManager) Close

func (this *StmtManager) Close() error

func (*StmtManager) CloseId

func (this *StmtManager) CloseId(parentId int64) error

func (*StmtManager) Len

func (this *StmtManager) Len() int

func (*StmtManager) Prepare

func (this *StmtManager) Prepare(preparer sqlPreparer, querySQL string) (*Stmt, error)

Prepare statement

func (*StmtManager) PrepareOnce

func (this *StmtManager) PrepareOnce(preparer sqlPreparer, querySQL string, parentId int64) (resultStmt *Stmt, wasCached bool, err error)

PrepareOnce prepare statement for reuse

func (*StmtManager) SetMaxCount

func (this *StmtManager) SetMaxCount(count int)

type Table

type Table struct {
	Name      string
	Schema    string
	Fields    []*Field
	Comment   string
	Collation string
	Engine    string
	Code      string // DDL SQL

	Partitions []*TablePartition // 分区
	Indexes    []*TableIndex     // 索引

	MappingName string // 映射的模型名
}

func (*Table) FindFieldWithName

func (this *Table) FindFieldWithName(name string) *Field

func (*Table) FindIndexWithName

func (this *Table) FindIndexWithName(name string) *TableIndex

func (*Table) FindPartitionWithName

func (this *Table) FindPartitionWithName(name string) *TablePartition

type TableIndex

type TableIndex struct {
	IsUnique    bool
	Name        string
	ColumnNames []string
	Type        string
	Comment     string
}

func (*TableIndex) Definition

func (this *TableIndex) Definition() string

type TablePartition

type TablePartition struct {
	Name            string
	Method          string
	Expression      string
	Description     string
	OrdinalPosition int
	NodeGroup       string
	Rows            int64
}

type Tx

type Tx struct {
	// contains filtered or unexported fields
}

func NewTx

func NewTx(db *DB, raw *sql.Tx) *Tx

func (*Tx) Commit

func (this *Tx) Commit() error

func (*Tx) Exec

func (this *Tx) Exec(query string, args ...any) (sql.Result, error)

func (*Tx) FindCol

func (this *Tx) FindCol(colIndex int, query string, args ...any) (colValue any, err error)

func (*Tx) FindOne

func (this *Tx) FindOne(query string, args ...any) (one maps.Map, err error)

func (*Tx) FindOnes

func (this *Tx) FindOnes(query string, args ...any) (ones []maps.Map, columnNames []string, err error)

func (*Tx) Prepare

func (this *Tx) Prepare(query string) (*Stmt, error)

func (*Tx) PrepareOnce

func (this *Tx) PrepareOnce(query string) (*Stmt, bool, error)

func (*Tx) Query

func (this *Tx) Query(query string, args ...any) (*sql.Rows, error)

func (*Tx) QueryContext

func (this *Tx) QueryContext(ctx context.Context, query string, args ...any) (*sql.Rows, error)

func (*Tx) QueryRow

func (this *Tx) QueryRow(query string, args ...any) *sql.Row

func (*Tx) QueryRowContext

func (this *Tx) QueryRowContext(ctx context.Context, query string, args ...any) *sql.Row

func (*Tx) Raw

func (this *Tx) Raw() *sql.Tx

func (*Tx) Rollback

func (this *Tx) Rollback() error

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL