Documentation ¶
Overview ¶
数据库操作方法统一封装 Author: sywen
Index ¶
- type Db
- func (db *Db) Create(datas interface{}) (num int64, err error)
- func (db *Db) CreateBatch(datas interface{}) (num int64, err error)
- func (db *Db) CreateInBatch(datas interface{}, batchSize int) (num int64, err error)
- func (db *Db) Delete(model interface{}, params FilterParams, scoped bool) (num int64, err error)
- func (db *Db) Exec(sql string, values ...interface{}) (num int64, err error)
- func (db *Db) FilterWhere(params FilterParams) (*gorm.DB, reflect.Type)
- func (db *Db) GetList(params FilterParams) (res []map[string]interface{}, count int64, err error)
- func (db *Db) GetListCursor(params FilterParams, limitSize int, cursorWhere ...QueryArgs) (res []map[string]interface{}, count int64, err error)
- func (db *Db) GetOne(params FilterParams) (res map[string]interface{}, err error)
- func (db *Db) Raw(res interface{}, sql string, values ...interface{}) (interface{}, error)
- func (db *Db) Update(params FilterParams, datas interface{}) (num int64, err error)
- type FilterParams
- type QueryArgs
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Db ¶
func (*Db) Create ¶
Create 创建单条数据 datas: interface{} 待插入的数据,传值需加地址符&
集合:map[string]interface{} , 根据 map 创建记录时,association 不会被调用,且主键也不会自动填充 结构体:struct{} , 此方式会触发grom的自动补充值机制
return:
num: int 操作影响的行数
func (*Db) CreateBatch ¶
CreateBatch 批量插入数据 datas: interface{} 待插入的数据切片,传值需加地址符&
集合:map[string]interface{} , 根据 map 创建记录时,association 不会被调用,且主键也不会自动填充 结构体:struct{} , 此方式会触发grom的自动补充值机制
return: int64 成功插入的数据条数
func (*Db) CreateInBatch ¶
CreateInBatch 批量分批插入数据 datas: interface{} 待插入的数据切片,此处传值不需加地址符&
集合:map[string]interface{} , 根据 map 创建记录时,association 不会被调用,且主键也不会自动填充 结构体:struct{} , 此方式会触发grom的自动补充值机制
batchSize: int 指定每批的数量 return: int64 成功插入的数据条数
func (*Db) Delete ¶
func (db *Db) Delete(model interface{}, params FilterParams, scoped bool) (num int64, err error)
Delete 支持真删除和软删除 params: FilterParams 匹配条件 model: interface{} 需要操作的数据表模型,传值需加地址符& scoped: bool 真删除=true 软删除=false
func (*Db) Exec ¶
Exec 执行原生sql(非查询操作) sql: string 原生sql语句 values: ...interface{} 多参数值映射 num: 影响的行数 err: 错误信息
func (*Db) FilterWhere ¶
FilterWhere 统一处理查询条件 params: FilterParams 查询条件
func (*Db) GetList ¶
func (db *Db) GetList(params FilterParams) (res []map[string]interface{}, count int64, err error)
GetList 查询数据列表 params: FilterParams 查询条件 return:
res: []map[string]interface{} 查询结果 count: int64 匹配查询条件的总记录数
func (*Db) GetListCursor ¶
func (db *Db) GetListCursor(params FilterParams, limitSize int, cursorWhere ...QueryArgs) (res []map[string]interface{}, count int64, err error)
GetListCursor 游标法查询数据列表 params: FilterParams 查询条件 limitSize: int 查询数据条数 cursorWhere: []QueryArgs 游标过滤条件 return:
res: []map[string]interface{} 查询结果 count: int64 匹配查询条件的总记录数
func (*Db) GetOne ¶
func (db *Db) GetOne(params FilterParams) (res map[string]interface{}, err error)
查询单条数据 params: FilterParams 查询条件 res: map[string]interface{} 查询结果
func (*Db) Raw ¶
Raw 执行原生sql查询 res: interface{} 存储查询结果,传值需加地址符& sql: string 原生sql语句 values: ...interface{} 多参数值映射
func (*Db) Update ¶
func (db *Db) Update(params FilterParams, datas interface{}) (num int64, err error)
Update 更新数据--gorm支持Update更新单个字段,Updates更新多个字段,统一使用Updates()方法 params: FilterParams{Table: "", Where: map[string]interface{}} datas: 有两种传值方式:指定更新字段,传值需加地址符&
集合:map[string]interface{} , 根据 map 创建记录时,association 不会被调用,且主键也不会自动填充 结构体:struct{} , 此方式会触发grom的自动补充值机制
return: int64 返回操作影响的行数
type FilterParams ¶
type FilterParams struct { Table string // 主表名 Fields []string // 指定字段 Where QueryArgs // 指定where条件 Or QueryArgs // or条件 Not QueryArgs // not条件 Join []QueryArgs // 链表查询, 传值格式[]QueryArgs{} Order []interface{} // 字段排序 Group string // 指定分组查询 Having QueryArgs // 指定having()条件 Limit [2]int // 限制[limit,offset] Distinct []interface{} // 指定选择 distinct values }
定义查询条件入参结构体