瀏覽代碼

api 调整,新增工具类 ChainWrappers

miemie 5 年之前
父節點
當前提交
add27015c0
共有 14 個文件被更改,包括 371 次插入178 次删除
  1. 1 1
      mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/conditions/AbstractChainWrapper.java
  2. 1 1
      mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/conditions/ChainWrapper.java
  3. 2 2
      mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/conditions/query/ChainQuery.java
  4. 72 0
      mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/conditions/query/LambdaQueryChainWrapper.java
  5. 72 0
      mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/conditions/query/QueryChainWrapper.java
  6. 2 2
      mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/conditions/update/ChainUpdate.java
  7. 64 0
      mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/conditions/update/LambdaUpdateChainWrapper.java
  8. 63 0
      mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/conditions/update/UpdateChainWrapper.java
  9. 9 10
      mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/service/IService.java
  10. 3 46
      mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/service/additional/query/impl/LambdaQueryChainWrapper.java
  11. 3 44
      mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/service/additional/query/impl/QueryChainWrapper.java
  12. 3 37
      mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/service/additional/update/impl/LambdaUpdateChainWrapper.java
  13. 3 35
      mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/service/additional/update/impl/UpdateChainWrapper.java
  14. 73 0
      mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/toolkit/ChainWrappers.java

+ 1 - 1
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/service/additional/AbstractChainWrapper.java → mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/conditions/AbstractChainWrapper.java

@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.baomidou.mybatisplus.extension.service.additional;
+package com.baomidou.mybatisplus.extension.conditions;
 
 import com.baomidou.mybatisplus.core.conditions.AbstractWrapper;
 import com.baomidou.mybatisplus.core.conditions.Wrapper;

+ 1 - 1
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/service/additional/ChainWrapper.java → mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/conditions/ChainWrapper.java

@@ -13,7 +13,7 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.baomidou.mybatisplus.extension.service.additional;
+package com.baomidou.mybatisplus.extension.conditions;
 
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;

+ 2 - 2
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/service/additional/query/ChainQuery.java → mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/conditions/query/ChainQuery.java

@@ -13,10 +13,10 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.baomidou.mybatisplus.extension.service.additional.query;
+package com.baomidou.mybatisplus.extension.conditions.query;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.service.additional.ChainWrapper;
+import com.baomidou.mybatisplus.extension.conditions.ChainWrapper;
 
 import java.util.List;
 

+ 72 - 0
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/conditions/query/LambdaQueryChainWrapper.java

@@ -0,0 +1,72 @@
+/*
+ * Copyright (c) 2011-2020, baomidou (jobob@qq.com).
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ * <p>
+ * https://www.apache.org/licenses/LICENSE-2.0
+ * <p>
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package com.baomidou.mybatisplus.extension.conditions.query;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.Query;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.TableFieldInfo;
+import com.baomidou.mybatisplus.core.toolkit.ExceptionUtils;
+import com.baomidou.mybatisplus.core.toolkit.support.SFunction;
+import com.baomidou.mybatisplus.extension.conditions.AbstractChainWrapper;
+
+import java.util.function.Predicate;
+
+/**
+ * @author miemie
+ * @since 2018-12-19
+ */
+@SuppressWarnings({"serial"})
+public class LambdaQueryChainWrapper<T> extends AbstractChainWrapper<T, SFunction<T, ?>, LambdaQueryChainWrapper<T>, LambdaQueryWrapper<T>>
+    implements ChainQuery<T>, Query<LambdaQueryChainWrapper<T>, T, SFunction<T, ?>> {
+
+    private BaseMapper<T> baseMapper;
+
+    public LambdaQueryChainWrapper(BaseMapper<T> baseMapper) {
+        super();
+        this.baseMapper = baseMapper;
+        super.wrapperChildren = new LambdaQueryWrapper<>();
+    }
+
+    @SafeVarargs
+    @Override
+    public final LambdaQueryChainWrapper<T> select(SFunction<T, ?>... columns) {
+        wrapperChildren.select(columns);
+        return typedThis;
+    }
+
+    @Override
+    public LambdaQueryChainWrapper<T> select(Predicate<TableFieldInfo> predicate) {
+        wrapperChildren.select(predicate);
+        return typedThis;
+    }
+
+    @Override
+    public LambdaQueryChainWrapper<T> select(Class<T> entityClass, Predicate<TableFieldInfo> predicate) {
+        wrapperChildren.select(entityClass, predicate);
+        return typedThis;
+    }
+
+    @Override
+    public String getSqlSelect() {
+        throw ExceptionUtils.mpe("can not use this method for \"%s\"", "getSqlSelect");
+    }
+
+    @Override
+    public BaseMapper<T> getBaseMapper() {
+        return baseMapper;
+    }
+}

+ 72 - 0
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/conditions/query/QueryChainWrapper.java

@@ -0,0 +1,72 @@
+/*
+ * Copyright (c) 2011-2020, baomidou (jobob@qq.com).
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ * <p>
+ * https://www.apache.org/licenses/LICENSE-2.0
+ * <p>
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package com.baomidou.mybatisplus.extension.conditions.query;
+
+import com.baomidou.mybatisplus.core.conditions.query.Query;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.TableFieldInfo;
+import com.baomidou.mybatisplus.core.toolkit.ExceptionUtils;
+import com.baomidou.mybatisplus.extension.conditions.AbstractChainWrapper;
+
+import java.util.function.Predicate;
+
+/**
+ * Query Chain Wrapper
+ *
+ * @author miemie
+ * @since 2018-12-19
+ */
+@SuppressWarnings({"serial"})
+public class QueryChainWrapper<T> extends AbstractChainWrapper<T, String, QueryChainWrapper<T>, QueryWrapper<T>>
+    implements ChainQuery<T>, Query<QueryChainWrapper<T>, T, String> {
+
+    private BaseMapper<T> baseMapper;
+
+    public QueryChainWrapper(BaseMapper<T> baseMapper) {
+        super();
+        this.baseMapper = baseMapper;
+        super.wrapperChildren = new QueryWrapper<>();
+    }
+
+    @Override
+    public QueryChainWrapper<T> select(String... columns) {
+        wrapperChildren.select(columns);
+        return typedThis;
+    }
+
+    @Override
+    public QueryChainWrapper<T> select(Predicate<TableFieldInfo> predicate) {
+        wrapperChildren.select(predicate);
+        return typedThis;
+    }
+
+    @Override
+    public QueryChainWrapper<T> select(Class<T> entityClass, Predicate<TableFieldInfo> predicate) {
+        wrapperChildren.select(entityClass, predicate);
+        return typedThis;
+    }
+
+    @Override
+    public String getSqlSelect() {
+        throw ExceptionUtils.mpe("can not use this method for \"%s\"", "getSqlSelect");
+    }
+
+    @Override
+    public BaseMapper<T> getBaseMapper() {
+        return baseMapper;
+    }
+}

+ 2 - 2
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/service/additional/update/ChainUpdate.java → mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/conditions/update/ChainUpdate.java

@@ -13,9 +13,9 @@
  * License for the specific language governing permissions and limitations under
  * the License.
  */
-package com.baomidou.mybatisplus.extension.service.additional.update;
+package com.baomidou.mybatisplus.extension.conditions.update;
 
-import com.baomidou.mybatisplus.extension.service.additional.ChainWrapper;
+import com.baomidou.mybatisplus.extension.conditions.ChainWrapper;
 
 /**
  * 具有更新方法的定义

+ 64 - 0
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/conditions/update/LambdaUpdateChainWrapper.java

@@ -0,0 +1,64 @@
+/*
+ * Copyright (c) 2011-2020, baomidou (jobob@qq.com).
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ * <p>
+ * https://www.apache.org/licenses/LICENSE-2.0
+ * <p>
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package com.baomidou.mybatisplus.extension.conditions.update;
+
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.Update;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.toolkit.ExceptionUtils;
+import com.baomidou.mybatisplus.core.toolkit.support.SFunction;
+import com.baomidou.mybatisplus.extension.conditions.AbstractChainWrapper;
+
+/**
+ * Lambda Update Chain Wrapper
+ *
+ * @author miemie
+ * @since 2018-12-19
+ */
+@SuppressWarnings({"serial"})
+public class LambdaUpdateChainWrapper<T> extends AbstractChainWrapper<T, SFunction<T, ?>, LambdaUpdateChainWrapper<T>, LambdaUpdateWrapper<T>>
+    implements ChainUpdate<T>, Update<LambdaUpdateChainWrapper<T>, SFunction<T, ?>> {
+
+    private BaseMapper<T> baseMapper;
+
+    public LambdaUpdateChainWrapper(BaseMapper<T> baseMapper) {
+        super();
+        this.baseMapper = baseMapper;
+        super.wrapperChildren = new LambdaUpdateWrapper<>();
+    }
+
+    @Override
+    public LambdaUpdateChainWrapper<T> set(boolean condition, SFunction<T, ?> column, Object val) {
+        wrapperChildren.set(condition, column, val);
+        return typedThis;
+    }
+
+    @Override
+    public LambdaUpdateChainWrapper<T> setSql(boolean condition, String sql) {
+        wrapperChildren.setSql(condition, sql);
+        return typedThis;
+    }
+
+    @Override
+    public String getSqlSet() {
+        throw ExceptionUtils.mpe("can not use this method for \"%s\"", "getSqlSet");
+    }
+
+    @Override
+    public BaseMapper<T> getBaseMapper() {
+        return baseMapper;
+    }
+}

+ 63 - 0
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/conditions/update/UpdateChainWrapper.java

@@ -0,0 +1,63 @@
+/*
+ * Copyright (c) 2011-2020, baomidou (jobob@qq.com).
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ * <p>
+ * https://www.apache.org/licenses/LICENSE-2.0
+ * <p>
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package com.baomidou.mybatisplus.extension.conditions.update;
+
+import com.baomidou.mybatisplus.core.conditions.update.Update;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.toolkit.ExceptionUtils;
+import com.baomidou.mybatisplus.extension.conditions.AbstractChainWrapper;
+
+/**
+ * Update Chain Wrapper
+ *
+ * @author miemie
+ * @since 2018-12-19
+ */
+@SuppressWarnings({"serial"})
+public class UpdateChainWrapper<T> extends AbstractChainWrapper<T, String, UpdateChainWrapper<T>, UpdateWrapper<T>>
+    implements ChainUpdate<T>, Update<UpdateChainWrapper<T>, String> {
+
+    private BaseMapper<T> baseMapper;
+
+    public UpdateChainWrapper(BaseMapper<T> baseMapper) {
+        super();
+        this.baseMapper = baseMapper;
+        super.wrapperChildren = new UpdateWrapper<>();
+    }
+
+    @Override
+    public UpdateChainWrapper<T> set(boolean condition, String column, Object val) {
+        wrapperChildren.set(condition, column, val);
+        return typedThis;
+    }
+
+    @Override
+    public UpdateChainWrapper<T> setSql(boolean condition, String sql) {
+        wrapperChildren.setSql(condition, sql);
+        return typedThis;
+    }
+
+    @Override
+    public String getSqlSet() {
+        throw ExceptionUtils.mpe("can not use this method for \"%s\"", "getSqlSet");
+    }
+
+    @Override
+    public BaseMapper<T> getBaseMapper() {
+        return baseMapper;
+    }
+}

+ 9 - 10
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/service/IService.java

@@ -19,12 +19,11 @@ import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.baomidou.mybatisplus.extension.service.additional.query.ChainQuery;
-import com.baomidou.mybatisplus.extension.service.additional.query.impl.LambdaQueryChainWrapper;
-import com.baomidou.mybatisplus.extension.service.additional.query.impl.QueryChainWrapper;
-import com.baomidou.mybatisplus.extension.service.additional.update.ChainUpdate;
-import com.baomidou.mybatisplus.extension.service.additional.update.impl.LambdaUpdateChainWrapper;
-import com.baomidou.mybatisplus.extension.service.additional.update.impl.UpdateChainWrapper;
+import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
+import com.baomidou.mybatisplus.extension.conditions.query.QueryChainWrapper;
+import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
+import com.baomidou.mybatisplus.extension.conditions.update.UpdateChainWrapper;
+import com.baomidou.mybatisplus.extension.toolkit.ChainWrappers;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.io.Serializable;
@@ -362,7 +361,7 @@ public interface IService<T> {
      * @return QueryWrapper 的包装类
      */
     default QueryChainWrapper<T> query() {
-        return new QueryChainWrapper<>(getBaseMapper());
+        return ChainWrappers.chainQuery(getBaseMapper());
     }
 
     /**
@@ -372,7 +371,7 @@ public interface IService<T> {
      * @return LambdaQueryWrapper 的包装类
      */
     default LambdaQueryChainWrapper<T> lambdaQuery() {
-        return new LambdaQueryChainWrapper<>(getBaseMapper());
+        return ChainWrappers.chainLambdaQuery(getBaseMapper());
     }
 
     /**
@@ -381,7 +380,7 @@ public interface IService<T> {
      * @return UpdateWrapper 的包装类
      */
     default UpdateChainWrapper<T> update() {
-        return new UpdateChainWrapper<>(getBaseMapper());
+        return ChainWrappers.chainUpdate(getBaseMapper());
     }
 
     /**
@@ -391,7 +390,7 @@ public interface IService<T> {
      * @return LambdaUpdateWrapper 的包装类
      */
     default LambdaUpdateChainWrapper<T> lambdaUpdate() {
-        return new LambdaUpdateChainWrapper<>(getBaseMapper());
+        return ChainWrappers.chainLambdaUpdate(getBaseMapper());
     }
 
     /**

+ 3 - 46
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/service/additional/query/impl/LambdaQueryChainWrapper.java

@@ -15,59 +15,16 @@
  */
 package com.baomidou.mybatisplus.extension.service.additional.query.impl;
 
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.query.Query;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.baomidou.mybatisplus.core.metadata.TableFieldInfo;
-import com.baomidou.mybatisplus.core.toolkit.ExceptionUtils;
-import com.baomidou.mybatisplus.core.toolkit.support.SFunction;
-import com.baomidou.mybatisplus.extension.service.additional.AbstractChainWrapper;
-import com.baomidou.mybatisplus.extension.service.additional.query.ChainQuery;
-
-import java.util.function.Predicate;
 
 /**
  * @author miemie
  * @since 2018-12-19
  */
-@SuppressWarnings({"serial"})
-public class LambdaQueryChainWrapper<T> extends AbstractChainWrapper<T, SFunction<T, ?>, LambdaQueryChainWrapper<T>, LambdaQueryWrapper<T>>
-    implements ChainQuery<T>, Query<LambdaQueryChainWrapper<T>, T, SFunction<T, ?>> {
-
-    private BaseMapper<T> baseMapper;
+@Deprecated
+public class LambdaQueryChainWrapper<T> extends com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper<T> {
 
     public LambdaQueryChainWrapper(BaseMapper<T> baseMapper) {
-        super();
-        this.baseMapper = baseMapper;
-        super.wrapperChildren = new LambdaQueryWrapper<>();
-    }
-
-    @SafeVarargs
-    @Override
-    public final LambdaQueryChainWrapper<T> select(SFunction<T, ?>... columns) {
-        wrapperChildren.select(columns);
-        return typedThis;
-    }
-
-    @Override
-    public LambdaQueryChainWrapper<T> select(Predicate<TableFieldInfo> predicate) {
-        wrapperChildren.select(predicate);
-        return typedThis;
-    }
-
-    @Override
-    public LambdaQueryChainWrapper<T> select(Class<T> entityClass, Predicate<TableFieldInfo> predicate) {
-        wrapperChildren.select(entityClass, predicate);
-        return typedThis;
-    }
-
-    @Override
-    public String getSqlSelect() {
-        throw ExceptionUtils.mpe("can not use this method for \"%s\"", "getSqlSelect");
-    }
-
-    @Override
-    public BaseMapper<T> getBaseMapper() {
-        return baseMapper;
+        super(baseMapper);
     }
 }

+ 3 - 44
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/service/additional/query/impl/QueryChainWrapper.java

@@ -15,15 +15,7 @@
  */
 package com.baomidou.mybatisplus.extension.service.additional.query.impl;
 
-import com.baomidou.mybatisplus.core.conditions.query.Query;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.baomidou.mybatisplus.core.metadata.TableFieldInfo;
-import com.baomidou.mybatisplus.core.toolkit.ExceptionUtils;
-import com.baomidou.mybatisplus.extension.service.additional.AbstractChainWrapper;
-import com.baomidou.mybatisplus.extension.service.additional.query.ChainQuery;
-
-import java.util.function.Predicate;
 
 /**
  * Query Chain Wrapper
@@ -31,43 +23,10 @@ import java.util.function.Predicate;
  * @author miemie
  * @since 2018-12-19
  */
-@SuppressWarnings({"serial"})
-public class QueryChainWrapper<T> extends AbstractChainWrapper<T, String, QueryChainWrapper<T>, QueryWrapper<T>>
-    implements ChainQuery<T>, Query<QueryChainWrapper<T>, T, String> {
-
-    private BaseMapper<T> baseMapper;
+@Deprecated
+public class QueryChainWrapper<T> extends com.baomidou.mybatisplus.extension.conditions.query.QueryChainWrapper<T> {
 
     public QueryChainWrapper(BaseMapper<T> baseMapper) {
-        super();
-        this.baseMapper = baseMapper;
-        super.wrapperChildren = new QueryWrapper<>();
-    }
-
-    @Override
-    public QueryChainWrapper<T> select(String... columns) {
-        wrapperChildren.select(columns);
-        return typedThis;
-    }
-
-    @Override
-    public QueryChainWrapper<T> select(Predicate<TableFieldInfo> predicate) {
-        wrapperChildren.select(predicate);
-        return typedThis;
-    }
-
-    @Override
-    public QueryChainWrapper<T> select(Class<T> entityClass, Predicate<TableFieldInfo> predicate) {
-        wrapperChildren.select(entityClass, predicate);
-        return typedThis;
-    }
-
-    @Override
-    public String getSqlSelect() {
-        throw ExceptionUtils.mpe("can not use this method for \"%s\"", "getSqlSelect");
-    }
-
-    @Override
-    public BaseMapper<T> getBaseMapper() {
-        return baseMapper;
+        super(baseMapper);
     }
 }

+ 3 - 37
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/service/additional/update/impl/LambdaUpdateChainWrapper.java

@@ -15,13 +15,7 @@
  */
 package com.baomidou.mybatisplus.extension.service.additional.update.impl;
 
-import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.Update;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.baomidou.mybatisplus.core.toolkit.ExceptionUtils;
-import com.baomidou.mybatisplus.core.toolkit.support.SFunction;
-import com.baomidou.mybatisplus.extension.service.additional.AbstractChainWrapper;
-import com.baomidou.mybatisplus.extension.service.additional.update.ChainUpdate;
 
 /**
  * Lambda Update Chain Wrapper
@@ -29,38 +23,10 @@ import com.baomidou.mybatisplus.extension.service.additional.update.ChainUpdate;
  * @author miemie
  * @since 2018-12-19
  */
-@SuppressWarnings({"serial"})
-public class LambdaUpdateChainWrapper<T> extends AbstractChainWrapper<T, SFunction<T, ?>, LambdaUpdateChainWrapper<T>, LambdaUpdateWrapper<T>>
-    implements ChainUpdate<T>, Update<LambdaUpdateChainWrapper<T>, SFunction<T, ?>> {
-
-    private BaseMapper<T> baseMapper;
+@Deprecated
+public class LambdaUpdateChainWrapper<T> extends com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper<T> {
 
     public LambdaUpdateChainWrapper(BaseMapper<T> baseMapper) {
-        super();
-        this.baseMapper = baseMapper;
-        super.wrapperChildren = new LambdaUpdateWrapper<>();
-    }
-
-    @Override
-    public LambdaUpdateChainWrapper<T> set(boolean condition, SFunction<T, ?> column, Object val) {
-        wrapperChildren.set(condition, column, val);
-        return typedThis;
-    }
-
-    @Override
-    public LambdaUpdateChainWrapper<T> setSql(boolean condition, String sql) {
-        wrapperChildren.setSql(condition, sql);
-        return typedThis;
+        super(baseMapper);
     }
-
-    @Override
-    public String getSqlSet() {
-        throw ExceptionUtils.mpe("can not use this method for \"%s\"", "getSqlSet");
-    }
-
-    @Override
-    public BaseMapper<T> getBaseMapper() {
-        return baseMapper;
-    }
-
 }

+ 3 - 35
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/service/additional/update/impl/UpdateChainWrapper.java

@@ -15,12 +15,7 @@
  */
 package com.baomidou.mybatisplus.extension.service.additional.update.impl;
 
-import com.baomidou.mybatisplus.core.conditions.update.Update;
-import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.baomidou.mybatisplus.core.toolkit.ExceptionUtils;
-import com.baomidou.mybatisplus.extension.service.additional.AbstractChainWrapper;
-import com.baomidou.mybatisplus.extension.service.additional.update.ChainUpdate;
 
 /**
  * Update Chain Wrapper
@@ -28,37 +23,10 @@ import com.baomidou.mybatisplus.extension.service.additional.update.ChainUpdate;
  * @author miemie
  * @since 2018-12-19
  */
-@SuppressWarnings({"serial"})
-public class UpdateChainWrapper<T> extends AbstractChainWrapper<T, String, UpdateChainWrapper<T>, UpdateWrapper<T>>
-    implements ChainUpdate<T>, Update<UpdateChainWrapper<T>, String> {
-
-    private BaseMapper<T> baseMapper;
+@Deprecated
+public class UpdateChainWrapper<T> extends com.baomidou.mybatisplus.extension.conditions.update.UpdateChainWrapper<T> {
 
     public UpdateChainWrapper(BaseMapper<T> baseMapper) {
-        super();
-        this.baseMapper = baseMapper;
-        super.wrapperChildren = new UpdateWrapper<>();
-    }
-
-    @Override
-    public UpdateChainWrapper<T> set(boolean condition, String column, Object val) {
-        wrapperChildren.set(condition, column, val);
-        return typedThis;
-    }
-
-    @Override
-    public UpdateChainWrapper<T> setSql(boolean condition, String sql) {
-        wrapperChildren.setSql(condition, sql);
-        return typedThis;
-    }
-
-    @Override
-    public String getSqlSet() {
-        throw ExceptionUtils.mpe("can not use this method for \"%s\"", "getSqlSet");
-    }
-
-    @Override
-    public BaseMapper<T> getBaseMapper() {
-        return baseMapper;
+        super(baseMapper);
     }
 }

+ 73 - 0
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/toolkit/ChainWrappers.java

@@ -0,0 +1,73 @@
+/*
+ * Copyright (c) 2011-2020, baomidou (jobob@qq.com).
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ * <p>
+ * https://www.apache.org/licenses/LICENSE-2.0
+ * <p>
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package com.baomidou.mybatisplus.extension.toolkit;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
+import com.baomidou.mybatisplus.extension.conditions.query.QueryChainWrapper;
+import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
+import com.baomidou.mybatisplus.extension.conditions.update.UpdateChainWrapper;
+
+/**
+ * 快捷构造 chain 式调用的工具类
+ *
+ * @author miemie
+ * @since 2019-11-28
+ */
+public final class ChainWrappers {
+
+    private ChainWrappers() {
+        // ignore
+    }
+
+    /**
+     * 链式查询 普通
+     *
+     * @return QueryWrapper 的包装类
+     */
+    public static <T> QueryChainWrapper<T> chainQuery(BaseMapper<T> mapper) {
+        return new QueryChainWrapper<>(mapper);
+    }
+
+    /**
+     * 链式查询 lambda 式
+     * <p>注意:不支持 Kotlin </p>
+     *
+     * @return LambdaQueryWrapper 的包装类
+     */
+    public static <T> LambdaQueryChainWrapper<T> chainLambdaQuery(BaseMapper<T> mapper) {
+        return new LambdaQueryChainWrapper<>(mapper);
+    }
+
+    /**
+     * 链式更改 普通
+     *
+     * @return UpdateWrapper 的包装类
+     */
+    public static <T> UpdateChainWrapper<T> chainUpdate(BaseMapper<T> mapper) {
+        return new UpdateChainWrapper<>(mapper);
+    }
+
+    /**
+     * 链式更改 lambda 式
+     * <p>注意:不支持 Kotlin </p>
+     *
+     * @return LambdaUpdateWrapper 的包装类
+     */
+    public static <T> LambdaUpdateChainWrapper<T> chainLambdaUpdate(BaseMapper<T> mapper) {
+        return new LambdaUpdateChainWrapper<>(mapper);
+    }
+}