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 SqlBuilder having(string expression); 22 SqlBuilder eq(T)(string key,T value) 23 { 24 return whereImpl(key,CompareType.eq,value.to!string); 25 } 26 SqlBuilder ne(T)(string key,T value) 27 { 28 return whereImpl(key,CompareType.ne,value.to!string); 29 } 30 SqlBuilder gt(T)(string key,T value) 31 { 32 return whereImpl(key,CompareType.gt,value.to!string); 33 } 34 SqlBuilder lt(T)(string key,T value) 35 { 36 return whereImpl(key,CompareType.lt,value.to!string); 37 } 38 SqlBuilder ge(T)(string key,T value) 39 { 40 return whereImpl(key,CompareType.ge,value.to!string); 41 } 42 SqlBuilder le(T)(string key,T value) 43 { 44 return whereImpl(key,CompareType.le,value.to!string); 45 } 46 SqlBuilder like(T)(string key,T value) 47 { 48 return whereImpl(key,CompareType.like,value.to!string); 49 } 50 SqlBuilder where(T)(string key,CompareType type,T value) 51 { 52 return whereImpl(key,type,value.to!string); 53 } 54 SqlBuilder whereImpl(string key,CompareType type,string value); 55 SqlBuilder where(MultiWhereExpression expr); 56 MultiWhereExpression expr(); 57 SqlBuilder join(JoinMethod joinMethod,string table,string tablealias,string joinWhere); 58 SqlBuilder join(JoinMethod joinMethod,string table,string joinWhere); 59 SqlBuilder innerJoin(string table,string tablealias,string joinWhere); 60 SqlBuilder innerJoin(string table,string joinWhere); 61 SqlBuilder leftJoin(string table,string tableAlias,string joinWhere); 62 SqlBuilder leftJoin(string table,string joinWhere); 63 SqlBuilder rightJoin(string table,string tableAlias,string joinWhere); 64 SqlBuilder rightJoin(string table,string joinWhere); 65 SqlBuilder fullJoin(string table,string tableAlias,string joinWhere); 66 SqlBuilder fullJoin(string table,string joinWhere); 67 SqlBuilder crossJoin(string table,string tableAlias); 68 SqlBuilder crossJoin(string table); 69 SqlBuilder groupBy(string expression); 70 SqlBuilder orderBy (string key,string order = "DESC"); 71 SqlBuilder offset(int offset); 72 SqlBuilder limit(int limit); 73 SqlBuilder values(string[string] arr); 74 SqlBuilder set(string key,string value); 75 SqlBuilder setParameter(int index,string value); 76 77 SqlBuilder setAutoIncrease(string key); 78 79 string tableName(); 80 string tableNameAlias(); 81 Method method(); 82 string[] selectKeys(); 83 string having(); 84 string groupBy(); 85 string orderBy(); 86 string order(); 87 int limit(); 88 int offset(); 89 string multiWhereStr(); 90 WhereExpression[] whereKeys(); 91 ValueExpression[string] values(); 92 JoinExpression[] joins(); 93 string getAutoIncrease(); 94 95 SqlSyntax build(); 96 } 97