mirror of
https://github.com/tobycroft/gorose-pro.git
synced 2025-09-26 12:41:16 +08:00
78 lines
2.7 KiB
Go
78 lines
2.7 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
|
||
// 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
|
||
}
|