@@ -6,20 +6,30 @@ A simple SQL query builder. It executes built queries if an executing function i
6
6
### <a name =" usage " ></a >[ Usage] ( #cusage )
7
7
8
8
1 . <a name =" csqlBuilder " ></a >[ SqlBuilder] ( #sqlBuilder )
9
- 1 . <a name =" ctableBuilder " ></a >[ TableBuilder] ( #tableBuilder )
10
- 1 . <a name =" ccolumn " ></a >[ Column] ( #column )
11
- 1 . <a name =" cuniqueBuilder " ></a >[ UniqueBuilder] ( #uniqueBuilder )
9
+ 2 . <a name =" ctableBuilder " ></a >[ TableBuilder] ( #tableBuilder )
10
+ 3 . <a name =" ccolumn " ></a >[ Column] ( #column )
11
+ 4 . <a name =" cuniqueBuilder " ></a >[ UniqueBuilder] ( #uniqueBuilder )
12
+ 5 . <a name =" cinsertUpdateBuilder " ></a >[ InsertUpdateBuilder] ( #insertUpdateBuilder )
13
+ 6 . <a name =" cwhereBuilder " ></a >[ WhereBuilder] ( #whereBuilder )
14
+ 7 . <a name =" ccondition " ></a >[ Condition] ( #condition )
15
+ 8 . <a name =" cselectBuilder " ></a >[ SelectBuilder] ( #selectBuilder )
16
+ 9 . <a name =" cfromBuilder " ></a >[ FromBuilder] ( #fromBuilder )
12
17
13
18
#### <a name =" sqlBuilder " ></a >[ SqlBuilder<i class =" icon-up " ></i >] ( #csqlBuilder )
14
19
15
20
This is the "entry point" of the builder. It contains only ` static ` methods and fields.
16
21
17
- import SqlBuilder from "react-native -sql-query-builder";
22
+ import SqlBuilder from "simple -sql-query-builder";
18
23
19
24
1 . <a name =" csqlBuilderSetDebug " ></a > [ setDebug()] ( #sqlBuilderSetDebug )
20
- 1 . <a name =" csqlBuilderSetSqlExecutor " ></a >[ setSqlExecutor()] ( #sqlBuilderSetSqlExecutor )
21
- 1 . <a name =" csqlBuilderExecuteSql " ></a >[ executeSql()] ( #sqlBuilderExecuteSql )
22
- 1 . <a name =" csqlBuilderCreateTable " ></a >[ createTable()] ( #sqlBuilderCreateTable )
25
+ 2 . <a name =" csqlBuilderSetSqlExecutor " ></a >[ setSqlExecutor()] ( #sqlBuilderSetSqlExecutor )
26
+ 3 . <a name =" csqlBuilderExecuteSql " ></a >[ executeSql()] ( #sqlBuilderExecuteSql )
27
+ 4 . <a name =" csqlBuilderCreateTable " ></a >[ createTable()] ( #sqlBuilderCreateTable )
28
+ 5 . <a name =" csqlBuilderInsert " ></a >[ insert()] ( #sqlBuilderInsert )
29
+ 6 . <a name =" csqlBuilderSelect " ></a >[ select()] ( #sqlBuilderSelect )
30
+ 7 . <a name =" csqlBuilderUpdate " ></a >[ update()] ( #sqlBuilderUpdate )
31
+ 8 . <a name =" csqlBuilderDelete " ></a >[ delete()] ( #sqlBuilderDelete )
32
+ 9 . <a name =" csqlBuilderStaticFields " ></a >[ static fields] ( #sqlBuilerStaticFields )
23
33
24
34
<!-- -->
25
35
@@ -55,7 +65,7 @@ This is the "entry point" of the builder. It contains only `static` methods and
55
65
56
66
const name = "weights";
57
67
58
- const callback = tableBuilder => {
68
+ const callback = tb => {
59
69
tb.integer("rowid").primary();
60
70
tb.integer("millis").notNull();
61
71
tb.integer("gross").notNull();
@@ -67,6 +77,62 @@ This is the "entry point" of the builder. It contains only `static` methods and
67
77
68
78
SqlBuilder.createTable(name, callback, ifNotExists);
69
79
80
+ - <a name =" sqlBuilderInsert " ></a >[ insert()<i class =" icon-up " ></i >] ( #csqlBuilderInsert )
81
+
82
+ Inserts a row using [ InsertUpdateBuilder] ( #insertUpdateBuilder ) .
83
+
84
+ const table = "weights";
85
+
86
+ const callback = ib => ib
87
+ .columnValue("millis", new Date().getTime())
88
+ .columnValue("gross", gross)
89
+ .columnValue("net", net)
90
+ .columnValue("comment", comment);
91
+
92
+ SqlBuilder.insert(table, callback);
93
+
94
+ - <a name =" sqlBuilderSelect " ></a >[ select()<i class =" icon-up " ></i >] ( #csqlBuilderSelect )
95
+
96
+ Selects rows using [ SelectBuilder] ( #selectBuilder ) .
97
+
98
+ SqlBuilder.select(sb => sb
99
+ .column("rowid")
100
+ .column("* ")
101
+ .from("weights"));
102
+
103
+ - <a name =" sqlBuilderUpdate " ></a >[ update()<i class =" icon-up " ></i >] ( #csqlBuilderUpdate )
104
+
105
+ Updates rows using [ InsertUpdateBuilder] ( #insertUpdateBuilder ) .
106
+
107
+ const table = "expenseImages";
108
+
109
+ const callback = ub => ub
110
+ .columnValue("path", path)
111
+ .where(wb => wb.column("rowid").e(image.rowid));
112
+
113
+ SqlBuilder.update(table, callback);
114
+
115
+ - <a name =" sqlBuilderDelete " ></a >[ delete()<i class =" icon-up " ></i >] ( #csqlBuilderDelete )
116
+
117
+ Deletes rows using [ WhereBuilder] ( #whereBuilder ) .
118
+
119
+ const table = "journeys";
120
+ const callback = wb => wb.column("rowid").e(rowid);
121
+
122
+ SqlBuilder.delete(table, callback);
123
+
124
+ - <a name =" sqlBuilderStaticFields " ></a >[ static fields<i class =" icon-up " ></i >] ( #csqlBuilderStaticFields )
125
+
126
+ There are several ` static ` fields in the class to facilitate creating instances of commonly used auxiliary classes: ` SelectBuilder ` , ` WhereBuilder ` and ` Condition ` . So instead of
127
+
128
+ import SelectBuilder from "simple-sql-query-builder/js/SelectBuilder";
129
+
130
+ const sb = new SelectBuilder();
131
+
132
+ you can just write
133
+
134
+ const sb = new SqlBuilder.SelectBuilder();
135
+
70
136
#### <a name =" tableBuilder " ></a >[ TableBuilder<i class =" icon-up " ></i >] ( #ctableBuilder )
71
137
72
138
- column()
@@ -103,6 +169,8 @@ This is the "entry point" of the builder. It contains only `static` methods and
103
169
104
170
#### <a name =" column " ></a >[ Column] ( #ccolumn )
105
171
172
+ All these methods return ` this ` to allow method chaining.
173
+
106
174
- primary()
107
175
108
176
Adds `PRIMARY KEY` to this column definition.
@@ -136,10 +204,104 @@ This is the "entry point" of the builder. It contains only `static` methods and
136
204
.collate("NOCASE")
137
205
.order("ASC");
138
206
207
+ #### <a name =" insertUpdateBuilder " ></a >[ InsertUpdateBuilder<i class =" icon-up " ></i >] ( #cinsertUpdateBuilder )
208
+
209
+ All these methods return ` this ` to allow method chaining.
210
+
211
+ - columnValue()
212
+
213
+ Specifies a column value.
214
+
215
+ insertUpdateBuilder.columnValue(
216
+ column,
217
+ value,
218
+ add, // Boolean. If true this column will be added to the generated SQL code. Default: true.
219
+ quoteIfString // Boolean. If true and value is a string, quotes are added to the generated SQL code for this value. Default: true.
220
+ );
221
+
222
+ Examples:
223
+
224
+ - ` "INSERT INTO tableName (columnName1) VALUES (10);" `
225
+
226
+ SqlBuilder.insert(
227
+ "tableName",
228
+ ib => ib.columnValue("columnName1", 10));
229
+
230
+ or
231
+
232
+ SqlBuilder.insert(
233
+ "tableName",
234
+ ib => ib
235
+ .columnValue("columnName1", 10)
236
+ .columnValue("columnValue2", 20, false));
237
+
238
+ - ` "INSERT INTO tableName (columnName1, columnName2) VALUES (10, "String value");" `
239
+
240
+ SqlBuilder.insert(
241
+ "tableName",
242
+ ib => ib
243
+ .columnValue("columnName1", 10)
244
+ .columnValue("columnName2", "String value"));
245
+
246
+ - where()
247
+
248
+ Specifies a ` WHERE ` clause. It's a no-op if this instance is used for insertion.
249
+
250
+ insertUpdateBuilder.where(
251
+ callbackOrConditionString, // See below.
252
+ add // Boolean. If true the WHERE-clause will be added to the generated SQL code. Default: true.
253
+ );
254
+
255
+ ` callbackOrConditionString ` can be one of:
256
+
257
+ - A callback receiving a [ WhereBuilder] ( #whereBuilder ) instance;
258
+ - a string without ` WHERE ` itself;
259
+ - A [ Condition] ( #condition ) instance;
260
+
261
+ Examples:
262
+
263
+ - ` UPDATE tableName SET columnName1 = 10, columnName2 = "String value" WHERE columnName3 = 314; `
264
+
265
+ SqlBuilder.update(
266
+ "tableName",
267
+ ib => ib
268
+ .columnValue("columnName1", 10)
269
+ .columnValue("columnName2", "String value")
270
+ .where(wb => wb.column("columnName3").e(314)));
271
+
272
+ or
273
+
274
+ SqlBuilder.update(
275
+ "tableName", ib => ib
276
+ .columnValue("columnName1", 10)
277
+ .columnValue("columnName2", "String value")
278
+ .where("columnName3 = 314"));
279
+
280
+ or
281
+
282
+ const condition = new SqlBuilder.Condition("columnName3");
283
+ condition.e(314);
284
+
285
+ SqlBuilder.update(
286
+ "tableName",
287
+ ib => ib
288
+ .columnValue("columnName1", 10)
289
+ .columnValue("columnName2", "String value")
290
+ .where(condition));
291
+
292
+ #### <a name =" whereBuilder " ></a >[ WhereBuilder<i class =" icon-up " ></i >] ( #cwhereBuilder )
293
+
294
+ #### <a name =" condition " ></a >[ Condition<i class =" icon-up " ></i >] ( #ccondition )
295
+
296
+ #### <a name =" selectBuilder " ></a >[ SelectBuilder<i class =" icon-up " ></i >] ( #cselectBuilder )
297
+
298
+ #### <a name =" fromBuilder " ></a >[ FromBuilder<i class =" icon-up " ></i >] ( #cfromBuilder )
299
+
139
300
### <a name =" versionHistory " ></a >[ Version history] ( #cversionHistory )
140
301
141
302
Version number|Changes
142
303
-|-
304
+ v1.0.1|1.  ; Readme updated.<br >2.  ; ` UPDATE ` queries weren't terminated with ` ; ` . Fixed.
143
305
v1.0.0|Initial release.
144
306
145
307
<br ><br >
0 commit comments