Преглед на файлове

sqlbuilder新增对delete的支持

MaiXinRong преди 7 години
родител
ревизия
dcb666dd30
променени са 2 файла, в които са добавени 22 реда и са изтрити 0 реда
  1. 4 0
      app/lib/sql_builder.js
  2. 18 0
      test/app/lib/sql_builder.test.js

+ 4 - 0
app/lib/sql_builder.js

@@ -81,6 +81,10 @@ class SqlBuilder {
                 this.sql = 'UPDATE ?? SET ';
                 this.sqlParam = [tableName];
                 break;
+            case 'delete':
+                this.sql = 'DELETE FROM ??';
+                this.sqlParam = [tableName];
+                break;
             default:
                 break;
         }

+ 18 - 0
test/app/lib/sql_builder.test.js

@@ -77,4 +77,22 @@ describe('test/app/lib/sql_builder.test.js', () => {
         const matchSql = 'UPDATE `table` SET  `create_time` = `create_time` + 1, `office` = 2 WHERE  `group_id` >= 1';
         assert(finalSql === matchSql);
     });
+
+    it('delete sql', function* () {
+        const sqlBuilder = new SqlBuilder();
+        sqlBuilder.setAndWhere('office', {
+            value: 2,
+            operate: '='
+        });
+        const prePath = '1.2.3';
+        sqlBuilder.setAndWhere('path', {
+            value: app.mysql.escape(prePath +'%'),
+            operate: 'Like'
+        })
+        const [sql, sqlParam] = sqlBuilder.build('table', 'delete');
+        const finalSql = app.mysql.format(sql, sqlParam);
+
+        const matchSql = "DELETE FROM `table` WHERE  `office` = 2 AND  `path` Like '1.2.3%'";
+        assert(finalSql === matchSql);
+    });
 });