Files
gorose-pro/orm_interface.go
火线兔 a6ac82136c 添加 DataStructStrict 方法并实现严格模式解析
- 在 orm.go 和 orm_interface.go 中添加 DataStructStrict 方法,支持基于 tag 的严格解析
- 在 structEngineNew.go 中添加 StructToMapStrict 和 StructToMapStrictSlices 函数,仅解析带有指定标签的字段
2026-04-09 12:09:28 +08:00

80 lines
2.8 KiB
Go

package gorose
// IOrm ...
type IOrm interface {
IOrmApi
IOrmQuery
IOrmExecute
IOrmSession
//ISession
Close()
BuildSql(operType ...string) (string, []interface{}, error)
Table(tab interface{}) IOrm
SubQuery(sql, alias string, args []interface{}) IOrm
SubWhere(field, condition, sql string, args []interface{}) IOrm
// fields=select
Fields(fields ...string) IOrm
AddFields(fields ...string) IOrm
// distinct 方法允许你强制查询返回不重复的结果集:
Distinct() IOrm
Data(data interface{}) IOrm
DataStruct(data interface{}) IOrm
DataStructStrict(data interface{}) IOrm
// groupBy, orderBy, having
Group(group string) IOrm
GroupBy(group string) IOrm
Having(having string) IOrm
Order(order string) IOrm
OrderBy(order string) IOrm
Limit(limit int) IOrm
Offset(offset int) IOrm
Page(page int) IOrm
// join(=innerJoin),leftJoin,rightJoin,crossJoin
Join(args ...interface{}) IOrm
LeftJoin(args ...interface{}) IOrm
RightJoin(args ...interface{}) IOrm
CrossJoin(args ...interface{}) IOrm
// `Where`,`OrWhere`,`WhereNull / WhereNotNull`,`WhereIn / WhereNotIn / OrWhereIn / OrWhereNotIn`,`WhereBetween / WhereBetwee / OrWhereBetween / OrWhereNotBetween`
Where(args ...interface{}) IOrm
OrWhere(args ...interface{}) IOrm
WhereOr(args ...interface{}) IOrm
WhereOrAnd(args ...interface{}) IOrm
WhereNull(arg string) IOrm
OrWhereNull(arg string) IOrm
WhereNotNull(arg string) IOrm
OrWhereNotNull(arg string) IOrm
WhereRegexp(arg string, expstr string) IOrm
OrWhereRegexp(arg string, expstr string) IOrm
WhereNotRegexp(arg string, expstr string) IOrm
OrWhereNotRegexp(arg string, expstr string) IOrm
WhereIn(needle string, hystack []interface{}) IOrm
OrWhereIn(needle string, hystack []interface{}) IOrm
WhereNotIn(needle string, hystack []interface{}) IOrm
OrWhereNotIn(needle string, hystack []interface{}) IOrm
WhereBetween(needle string, hystack []interface{}) IOrm
OrWhereBetween(needle string, hystack []interface{}) IOrm
WhereNotBetween(needle string, hystack []interface{}) IOrm
OrWhereNotBetween(needle string, hystack []interface{}) IOrm
// truncate
Truncate() error
GetDriver() string
//GetIBinder() IBinder
SetBindValues(v interface{})
GetBindValues() []interface{}
IsSubQuery() bool
ClearBindValues()
Transaction(closers ...func(db IOrm) error) (err error)
Reset() IOrm
ResetTable() IOrm
ResetWhere() IOrm
GetISession() ISession
GetOrmApi() *OrmApi
// 悲观锁使用
// sharedLock(lock in share mode) 不会阻塞其它事务读取被锁定行记录的值
SharedLock() *Orm
// 此外你还可以使用 lockForUpdate 方法。“for update”锁避免选择行被其它共享锁修改或删除:
// 会阻塞其他锁定性读对锁定行的读取(非锁定性读仍然可以读取这些记录,lock in share mode 和 for update 都是锁定性读)
LockForUpdate() *Orm
//ResetUnion() IOrm
}