-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathorm_interface.go
77 lines (76 loc) · 2.74 KB
/
orm_interface.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
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
}