Browse Source

清理一波注释

miemie 7 years ago
parent
commit
cdf303629d

+ 11 - 119
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/conditions/AbstractWrapper.java

@@ -117,29 +117,6 @@ public abstract class AbstractWrapper<T, R, This extends AbstractWrapper<T, R, T
         return typedThis;
     }
 
-    /**
-     * TODO 待确定的多参数字段过滤
-     * 条件过滤器,该方法是一个 NullSafe 的方法
-     * 参数中的 null 值在拼接的时候会被自动转换成 IS NULL
-     * 示例:
-     * Map<String, String> params = new HashMap<String, String>(){{
-     * put("id", "123");
-     * put("name", "baomidou");
-     * put("address", null);
-     * }};
-     * <p>
-     * 去除值为null的元素,可以这么写:
-     * allEq((key,value)-> null!= value, params);
-     * 只加入id ,name:
-     * allEq((key,value)-> "id".equals(key) || "name".equals(key), params);
-     * 根据无关的条件判断:
-     * allEq((key,value)-> IntStream.rangeClosed(1,10).limit(1).findFirst().getAsInt() > 5, params);
-     *
-     * @param filter 返回 true 来允许字段传入 条件中
-     * @param params 参数
-     * @param <V>    参数中值的类型
-     * @return 返回自身
-     */
     @Override
     public <V> This allEq(boolean condition, BiPredicate<R, V> filter, Map<R, V> params) {
         if (condition && CollectionUtils.isNotEmpty(params)) {
@@ -156,166 +133,102 @@ public abstract class AbstractWrapper<T, R, This extends AbstractWrapper<T, R, T
         return typedThis;
     }
 
-    /**
-     * 等于 =
-     */
     @Override
     public This eq(boolean condition, R column, Object val) {
         return addCondition(condition, column, EQ, val);
     }
 
-    /**
-     * 不等于 <>
-     */
     @Override
     public This ne(boolean condition, R column, Object val) {
         return addCondition(condition, column, NE, val);
     }
 
-    /**
-     * 大于 >
-     */
     @Override
     public This gt(boolean condition, R column, Object val) {
         return addCondition(condition, column, GT, val);
     }
 
-    /**
-     * 大于等于 >=
-     */
     @Override
     public This ge(boolean condition, R column, Object val) {
         return addCondition(condition, column, GE, val);
     }
 
-    /**
-     * 小于 <
-     */
     @Override
     public This lt(boolean condition, R column, Object val) {
         return addCondition(condition, column, LT, val);
     }
 
-    /**
-     * 小于等于 <=
-     */
     @Override
     public This le(boolean condition, R column, Object val) {
         return addCondition(condition, column, LE, val);
     }
 
-    /**
-     * LIKE '%值%'
-     */
     @Override
     public This like(boolean condition, R column, Object val) {
         return doIt(condition, () -> columnToString(column), LIKE, () -> formatSql("{0}", "%" + val + "%"));
     }
 
-    /**
-     * NOT LIKE '%值%'
-     */
     @Override
     public This notLike(boolean condition, R column, Object val) {
         return not(condition).like(condition, column, val);
     }
 
-    /**
-     * LIKE '%值'
-     */
     @Override
     public This likeLeft(boolean condition, R column, Object val) {
         return doIt(condition, () -> columnToString(column), LIKE, () -> formatSql("{0}", "%" + val));
     }
 
-    /**
-     * LIKE '值%'
-     */
     @Override
     public This likeRight(boolean condition, R column, Object val) {
         return doIt(condition, () -> columnToString(column), LIKE, () -> formatSql("{0}", val + "%"));
     }
 
-    /**
-     * BETWEEN 值1 AND 值2
-     */
     @Override
     public This between(boolean condition, R column, Object val1, Object val2) {
         return doIt(condition, () -> columnToString(column), BETWEEN, () -> formatSql("{0}", val1), AND,
             () -> formatSql("{0}", val2));
     }
 
-    /**
-     * NOT BETWEEN 值1 AND 值2
-     */
     @Override
     public This notBetween(boolean condition, R column, Object val1, Object val2) {
         return not(condition).between(condition, column, val1, val2);
     }
 
-    /**
-     * AND 嵌套
-     */
     @Override
     public This and(boolean condition, Function<This, This> func) {
         return and(condition).addNestedCondition(condition, func);
     }
 
-    /**
-     * OR 嵌套
-     */
     @Override
     public This or(boolean condition, Function<This, This> func) {
         return or(condition).addNestedCondition(condition, func);
     }
 
-    /**
-     * 正常嵌套 不带 AND 或者 OR
-     */
     @Override
     public This nested(boolean condition, Function<This, This> func) {
         return addNestedCondition(condition, func);
     }
 
-    /**
-     * 拼接 OR
-     */
     @Override
     public This or(boolean condition) {
         return doIt(condition, OR);
     }
 
-    /**
-     * 拼接 IN ( sql 语句 )
-     * 例: in("1,2,3,4,5,6")
-     */
     @Override
     public This in(boolean condition, String sql) {
         return addNestedCondition(condition, sql, IN);
     }
 
-    /**
-     * 拼接 NOT IN ( sql 语句 )
-     * 例: notIn("1,2,3,4,5,6")
-     */
     @Override
     public This notIn(boolean condition, String sql) {
         return not(condition).in(condition, sql);
     }
 
-    /**
-     * 拼接 sql
-     * 例: apply("date_format(column,'%Y-%m-%d') = '2008-08-08'")
-     */
     @Override
     public This apply(boolean condition, String applySql) {
         return doIt(condition, () -> applySql);
     }
 
-    /**
-     * 拼接 sql
-     * 例: apply("date_format(column,'%Y-%m-%d') = {0}", LocalDate.now())
-     */
     @Override
     public This apply(boolean condition, String applySql, Object... value) {
         return doIt(condition, () -> formatSql(applySql, value));
@@ -327,41 +240,26 @@ public abstract class AbstractWrapper<T, R, This extends AbstractWrapper<T, R, T
         return typedThis;
     }
 
-    /**
-     * EXISTS ( sql 语句 )
-     */
     @Override
     public This exists(boolean condition, String existsSql) {
         return addNestedCondition(condition, existsSql, EXISTS);
     }
 
-    /**
-     * NOT EXISTS ( sql 语句 )
-     */
     @Override
     public This notExists(boolean condition, String notExistsSql) {
         return not(condition).exists(condition, notExistsSql);
     }
 
-    /**
-     * 字段 IS NULL
-     */
     @Override
     public This isNull(boolean condition, R column) {
         return doIt(condition, () -> columnToString(column), IS_NULL);
     }
 
-    /**
-     * 字段 IS NOT NULL
-     */
     @Override
     public This isNotNull(boolean condition, R column) {
         return doIt(condition, () -> columnToString(column), IS_NOT_NULL);
     }
 
-    /**
-     * 字段 IN (value.get(0), value.get(1), ...)
-     */
     @Override
     public This in(boolean condition, R column, Collection<?> value) {
         if (CollectionUtils.isEmpty(value)) {
@@ -370,9 +268,6 @@ public abstract class AbstractWrapper<T, R, This extends AbstractWrapper<T, R, T
         return doIt(condition, () -> columnToString(column), IN, inExpression(value));
     }
 
-    /**
-     * 字段 NOT IN (value.get(0), value.get(1), ...)
-     */
     @Override
     public This notIn(boolean condition, R column, Collection<?> value) {
         if (CollectionUtils.isEmpty(value)) {
@@ -397,20 +292,6 @@ public abstract class AbstractWrapper<T, R, This extends AbstractWrapper<T, R, T
         return doIt(condition, ORDER_BY, () -> columnsToString(columns), isAsc ? ASC : DESC);
     }
 
-    /**
-     * <p>
-     * 多字段转换为逗号 "," 分割字符串
-     * </p>
-     *
-     * @param columns 多字段
-     */
-    protected String columnsToString(R... columns) {
-        return Arrays.stream(columns).map(this::columnToString).collect(joining(","));
-    }
-
-    /**
-     * HAVING ( sql 语句 )
-     */
     @Override
     public This having(boolean condition, String sqlHaving, Object... params) {
         return doIt(condition, HAVING, () -> formatSqlIfNeed(condition, sqlHaving, params));
@@ -574,6 +455,17 @@ public abstract class AbstractWrapper<T, R, This extends AbstractWrapper<T, R, T
         return paramNameValuePairs;
     }
 
+    /**
+     * <p>
+     * 多字段转换为逗号 "," 分割字符串
+     * </p>
+     *
+     * @param columns 多字段
+     */
+    protected String columnsToString(R... columns) {
+        return Arrays.stream(columns).map(this::columnToString).collect(joining(","));
+    }
+
     /**
      * 获取 columnName
      */

+ 2 - 2
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/conditions/interfaces/Join.java

@@ -97,7 +97,7 @@ public interface Join<This> extends Serializable {
     This apply(boolean condition, String applySql, Object... value);
 
     /**
-     * 无视优化规则直接拼接到 sql 的最后
+     * 无视优化规则直接拼接到 sql 的最后(有sql注入的风险,请谨慎使用)
      * 例: last("limit 1")
      */
     default This last(String lastSql) {
@@ -105,7 +105,7 @@ public interface Join<This> extends Serializable {
     }
 
     /**
-     * 无视优化规则直接拼接到 sql 的最后
+     * 无视优化规则直接拼接到 sql 的最后(有sql注入的风险,请谨慎使用)
      * 例: last("limit 1")
      */
     This last(boolean condition, String lastSql);

+ 5 - 1
mybatis-plus-core/src/test/java/com/baomidou/mybatisplus/core/test/WrapperTest.java

@@ -79,6 +79,9 @@ public class WrapperTest {
         logSqlSegment("多个 or 相连接,去除多余的 or", new QueryWrapper<User>()
             .ge("age", 3).or().or().or().ge("age", 3).or().or().ge("age", 3));
 
+        logSqlSegment("嵌套测试,正常嵌套", new QueryWrapper<User>()
+            .nested(i -> i.eq("id", 1)).eq("id", 1));
+
         logSqlSegment("嵌套测试,第一个套外的 and 自动消除", new QueryWrapper<User>()
             .and(i -> i.eq("id", 1)).eq("id", 1));
 
@@ -94,8 +97,9 @@ public class WrapperTest {
         logSqlSegment("嵌套测试,套内外手动拼接 or,去除套内第一个 or", new QueryWrapper<User>()
             .eq("id", 11).or(i -> i.or().eq("id", 1)).or().eq("id", 1));
 
-        logSqlSegment("多个 order by 和 group by 拼接,自动优化顺序", new QueryWrapper<User>()
+        logSqlSegment("多个 order by 和 group by 拼接,自动优化顺序,last方法拼接在最后", new QueryWrapper<User>()
             .eq("id", 11)
+            .last("limit 1")
             .orderByAsc("id", "name", "sex").orderByDesc("age", "txl")
             .groupBy("id", "name", "sex").groupBy("id", "name"));
     }