miemie 7 سال پیش
والد
کامیت
ddcaf11969
1فایلهای تغییر یافته به همراه18 افزوده شده و 8 حذف شده
  1. 18 8
      mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/conditions/AbstractWrapper.java

+ 18 - 8
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/conditions/AbstractWrapper.java

@@ -106,8 +106,20 @@ public abstract class AbstractWrapper<T, R, This extends AbstractWrapper<T, R, T
 
     protected abstract String columnToString(R column);
 
-    public This apply(String condition) {
-        return doIt(true, () -> condition);
+    /**
+     * 追加 sql
+     * 例: apply("date_format(column,'%Y-%m-%d') = '2008-08-08'")
+     */
+    public This apply(String sql) {
+        return doIt(true, () -> sql);
+    }
+
+    /**
+     * 追加 sql
+     * 例: apply("date_format(column,'%Y-%m-%d') = {0}", LocalDate.now())
+     */
+    public This apply(String sql, Object... value) {
+        return doIt(true, () -> formatSql(sql, value));
     }
 
     /**
@@ -121,8 +133,8 @@ public abstract class AbstractWrapper<T, R, This extends AbstractWrapper<T, R, T
      * LIKE '%值%'
      */
     public This like(boolean condition, R column, Object val) {
-        return doIt(condition, () -> columnToString(column), LIKE, () -> "'%", () -> formatSql("{0}", val),
-            () -> "%'");
+        return doIt(condition, () -> columnToString(column), LIKE, () -> "\"%\"", () -> formatSql("{0}", val),
+            () -> "\"%\"");
     }
 
     /**
@@ -150,8 +162,7 @@ public abstract class AbstractWrapper<T, R, This extends AbstractWrapper<T, R, T
      * LIKE '%值'
      */
     public This likeLeft(boolean condition, R column, Object val) {
-        return doIt(condition, () -> columnToString(column), LIKE, () -> "'%", () -> formatSql("{0}", val),
-            () -> "'");
+        return doIt(condition, () -> columnToString(column), LIKE, () -> "\"%\"", () -> formatSql("{0}", val));
     }
 
     /**
@@ -165,8 +176,7 @@ public abstract class AbstractWrapper<T, R, This extends AbstractWrapper<T, R, T
      * LIKE '值%'
      */
     public This likeRight(boolean condition, R column, Object val) {
-        return doIt(condition, () -> columnToString(column), LIKE, () -> "'", () -> formatSql("{0}", val),
-            () -> "%'");
+        return doIt(condition, () -> columnToString(column), LIKE, () -> formatSql("{0}", val), () -> "\"%\"");
     }
 
     /**