1 module dbal.builder; 2 3 import dbal; 4 5 interface SqlBuilder 6 { 7 SqlBuilder from(string tableName,string tableNameAlias = null); 8 SqlBuilder select(T...)(T args) 9 { 10 string[] arr; 11 foreach(arg;args){ 12 arr ~= arg; 13 } 14 return selectImpl(arr); 15 } 16 SqlBuilder selectImpl(string[] args); 17 SqlBuilder insert(string tableName); 18 SqlBuilder update(string tableName); 19 SqlBuilder remove(string tableName); 20 SqlBuilder where(string expression); 21 alias total = count; 22 SqlBuilder count(); 23 SqlBuilder having(string expression); 24 SqlBuilder eq(T)(string key,T value) 25 { 26 return whereImpl(key,CompareType.eq,value.to!string); 27 } 28 SqlBuilder ne(T)(string key,T value) 29 { 30 return whereImpl(key,CompareType.ne,value.to!string); 31 } 32 SqlBuilder gt(T)(string key,T value) 33 { 34 return whereImpl(key,CompareType.gt,value.to!string); 35 } 36 SqlBuilder lt(T)(string key,T value) 37 { 38 return whereImpl(key,CompareType.lt,value.to!string); 39 } 40 SqlBuilder ge(T)(string key,T value) 41 { 42 return whereImpl(key,CompareType.ge,value.to!string); 43 } 44 SqlBuilder le(T)(string key,T value) 45 { 46 return whereImpl(key,CompareType.le,value.to!string); 47 } 48 SqlBuilder like(T)(string key,T value) 49 { 50 return whereImpl(key,CompareType.like,value.to!string); 51 } 52 SqlBuilder where(T)(string key,CompareType type,T value) 53 { 54 return whereImpl(key,type,value.to!string); 55 } 56 SqlBuilder whereImpl(string key,CompareType type,string value); 57 SqlBuilder where(MultiWhereExpression expr); 58 MultiWhereExpression expr(); 59 SqlBuilder join(JoinMethod joinMethod,string table,string tablealias,string joinWhere); 60 SqlBuilder join(JoinMethod joinMethod,string table,string joinWhere); 61 SqlBuilder innerJoin(string table,string tablealias,string joinWhere); 62 SqlBuilder innerJoin(string table,string joinWhere); 63 SqlBuilder leftJoin(string table,string tableAlias,string joinWhere); 64 SqlBuilder leftJoin(string table,string joinWhere); 65 SqlBuilder rightJoin(string table,string tableAlias,string joinWhere); 66 SqlBuilder rightJoin(string table,string joinWhere); 67 SqlBuilder fullJoin(string table,string tableAlias,string joinWhere); 68 SqlBuilder fullJoin(string table,string joinWhere); 69 SqlBuilder crossJoin(string table,string tableAlias); 70 SqlBuilder crossJoin(string table); 71 SqlBuilder groupBy(string expression); 72 SqlBuilder orderBy (string key,string order = "DESC"); 73 SqlBuilder offset(int offset); 74 SqlBuilder limit(int limit); 75 SqlBuilder values(string[string] arr); 76 SqlBuilder set(string key,string value); 77 SqlBuilder setParameter(int index,string value); 78 79 SqlBuilder setAutoIncrease(string key); 80 81 string tableName(); 82 string tableNameAlias(); 83 Method method(); 84 string[] selectKeys(); 85 string having(); 86 string groupBy(); 87 string orderBy(); 88 string order(); 89 int limit(); 90 int offset(); 91 string multiWhereStr(); 92 WhereExpression[] whereKeys(); 93 ValueExpression[string] values(); 94 JoinExpression[] joins(); 95 string getAutoIncrease(); 96 97 SqlSyntax build(); 98 } 99