Ver Fonte

优化数据创建或修改逻辑

woody há 11 meses atrás
pai
commit
a7de5668f6

+ 73 - 35
framework-database/src/main/java/com/chelvc/framework/database/support/Updates.java

@@ -53,13 +53,13 @@ public final class Updates {
     /**
      * 相等
      *
-     * @param column 列名
-     * @param <T>    数据类型
+     * @param columns 列名数组
+     * @param <T>     数据类型
      * @return 更新对象实例
      */
-    public static <T> Update<T> eq(@NonNull String column) {
+    public static <T> Update<T> eq(@NonNull String... columns) {
         Update<T> update = update();
-        return update.eq(column);
+        return update.eq(columns);
     }
 
     /**
@@ -77,13 +77,13 @@ public final class Updates {
     /**
      * 相加
      *
-     * @param column 列名
-     * @param <T>    数据类型
+     * @param columns 列名数组
+     * @param <T>     数据类型
      * @return 更新对象实例
      */
-    public static <T> Update<T> add(@NonNull String column) {
+    public static <T> Update<T> add(@NonNull String... columns) {
         Update<T> update = update();
-        return update.add(column);
+        return update.add(columns);
     }
 
     /**
@@ -101,13 +101,13 @@ public final class Updates {
     /**
      * 相减
      *
-     * @param column 列名
-     * @param <T>    数据类型
+     * @param columns 列名数组
+     * @param <T>     数据类型
      * @return 更新对象实例
      */
-    public static <T> Update<T> subtract(@NonNull String column) {
+    public static <T> Update<T> subtract(@NonNull String... columns) {
         Update<T> update = update();
-        return update.subtract(column);
+        return update.subtract(columns);
     }
 
     /**
@@ -125,13 +125,13 @@ public final class Updates {
     /**
      * 相乘
      *
-     * @param column 列名
-     * @param <T>    数据类型
+     * @param columns 列名数组
+     * @param <T>     数据类型
      * @return 更新对象实例
      */
-    public static <T> Update<T> multiply(@NonNull String column) {
+    public static <T> Update<T> multiply(@NonNull String... columns) {
         Update<T> update = update();
-        return update.multiply(column);
+        return update.multiply(columns);
     }
 
     /**
@@ -149,13 +149,13 @@ public final class Updates {
     /**
      * 相除
      *
-     * @param column 列名
-     * @param <T>    数据类型
+     * @param columns 列名数组
+     * @param <T>     数据类型
      * @return 更新对象实例
      */
-    public static <T> Update<T> divide(@NonNull String column) {
+    public static <T> Update<T> divide(@NonNull String... columns) {
         Update<T> update = update();
-        return update.divide(column);
+        return update.divide(columns);
     }
 
     /**
@@ -243,11 +243,14 @@ public final class Updates {
         /**
          * 相等
          *
-         * @param column 列名
+         * @param columns 列名数组
          * @return 更新对象实例
          */
-        public Update<T> eq(@NonNull String column) {
-            return this.expression(column, " = VALUES(" + column + ")");
+        public Update<T> eq(@NonNull String... columns) {
+            for (String column : columns) {
+                this.expression(column, " = VALUES(" + column + ")");
+            }
+            return this;
         }
 
         /**
@@ -263,11 +266,14 @@ public final class Updates {
         /**
          * 相加
          *
-         * @param column 列名
+         * @param columns 列名数组
          * @return 更新对象实例
          */
-        public Update<T> add(@NonNull String column) {
-            return this.expression(column, " = " + column + " + VALUES(" + column + ")");
+        public Update<T> add(@NonNull String... columns) {
+            for (String column : columns) {
+                this.expression(column, " = " + column + " + VALUES(" + column + ")");
+            }
+            return this;
         }
 
         /**
@@ -283,11 +289,14 @@ public final class Updates {
         /**
          * 相减
          *
-         * @param column 列名
+         * @param columns 列名数组
          * @return 更新对象实例
          */
-        public Update<T> subtract(@NonNull String column) {
-            return this.expression(column, " = " + column + " - VALUES(" + column + ")");
+        public Update<T> subtract(@NonNull String... columns) {
+            for (String column : columns) {
+                this.expression(column, " = " + column + " - VALUES(" + column + ")");
+            }
+            return this;
         }
 
         /**
@@ -303,11 +312,14 @@ public final class Updates {
         /**
          * 相乘
          *
-         * @param column 列名
+         * @param columns 列名数组
          * @return 更新对象实例
          */
-        public Update<T> multiply(@NonNull String column) {
-            return this.expression(column, " = " + column + " * VALUES(" + column + ")");
+        public Update<T> multiply(@NonNull String... columns) {
+            for (String column : columns) {
+                this.expression(column, " = " + column + " * VALUES(" + column + ")");
+            }
+            return this;
         }
 
         /**
@@ -323,11 +335,14 @@ public final class Updates {
         /**
          * 相除
          *
-         * @param column 列名
+         * @param columns 列名数组
          * @return 更新对象实例
          */
-        public Update<T> divide(@NonNull String column) {
-            return this.expression(column, " = " + column + " / VALUES(" + column + ")");
+        public Update<T> divide(@NonNull String... columns) {
+            for (String column : columns) {
+                this.expression(column, " = " + column + " / VALUES(" + column + ")");
+            }
+            return this;
         }
 
         /**
@@ -352,6 +367,29 @@ public final class Updates {
             return this;
         }
 
+        /**
+         * 移除更新字段
+         *
+         * @param columns 列名数字
+         * @return 更新对象实例
+         */
+        public Update<T> remove(@NonNull String... columns) {
+            for (String column : columns) {
+                this.expressions.remove(column);
+            }
+            return this;
+        }
+
+        /**
+         * 移除更新字段
+         *
+         * @param getter 属性Getter方法
+         * @return 更新对象实例
+         */
+        public Update<T> remove(@NonNull SFunction<T, ?> getter) {
+            return this.remove(this.getter2column(getter));
+        }
+
         /**
          * 获取表达式字段/值映射表
          *