Explorar o código

增加流式查询.

nieqiurong hai 1 ano
pai
achega
8bd2ab1919

+ 67 - 0
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/mapper/BaseMapper.java

@@ -22,6 +22,7 @@ import com.baomidou.mybatisplus.core.toolkit.Constants;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.exceptions.TooManyResultsException;
+import org.apache.ibatis.session.ResultHandler;
 
 import java.io.Serializable;
 import java.util.Collection;
@@ -160,6 +161,15 @@ public interface BaseMapper<T> extends Mapper<T> {
      */
     List<T> selectBatchIds(@Param(Constants.COLL) Collection<? extends Serializable> idList);
 
+    /**
+     * 查询(根据ID 批量查询)
+     *
+     * @param idList        idList 主键ID列表(不能为 null 以及 empty)
+     * @param resultHandler resultHandler 结果处理器 {@link ResultHandler}
+     * @since 3.5.4
+     */
+    void selectBatchIds(@Param(Constants.COLL) Collection<? extends Serializable> idList, ResultHandler<T> resultHandler);
+
     /**
      * 查询(根据 columnMap 条件)
      *
@@ -170,6 +180,17 @@ public interface BaseMapper<T> extends Mapper<T> {
         return this.selectList(qw.allEq(columnMap));
     }
 
+    /**
+     * 查询(根据 columnMap 条件)
+     *
+     * @param columnMap     表字段 map 对象
+     * @param resultHandler resultHandler 结果处理器 {@link ResultHandler}
+     * @since 3.5.4
+     */
+    default void selectByMap(Map<String, Object> columnMap, ResultHandler<T> resultHandler) {
+        this.selectList(Wrappers.<T>query().allEq(columnMap), resultHandler);
+    }
+
     /**
      * 根据 entity 条件,查询一条记录
      * <p>查询一条记录,例如 qw.last("limit 1") 限制取一条记录, 注意:多条数据会报异常</p>
@@ -227,6 +248,15 @@ public interface BaseMapper<T> extends Mapper<T> {
      */
     List<T> selectList(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
 
+    /**
+     * 根据 entity 条件,查询全部记录
+     *
+     * @param queryWrapper  实体对象封装操作类(可以为 null)
+     * @param resultHandler 结果处理器 {@link ResultHandler}
+     * @since 3.5.4
+     */
+    void selectList(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper, ResultHandler<T> resultHandler);
+
     /**
      * 根据 entity 条件,查询全部记录(并翻页)
      *
@@ -236,6 +266,15 @@ public interface BaseMapper<T> extends Mapper<T> {
      */
     List<T> selectList(IPage<T> page, @Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
 
+    /**
+     * 根据 entity 条件,查询全部记录(并翻页)
+     * @param page          分页查询条件
+     * @param queryWrapper  实体对象封装操作类(可以为 null)
+     * @param resultHandler 结果处理器 {@link ResultHandler}
+     * @since 3.5.4
+     */
+    void selectList(IPage<T> page, @Param(Constants.WRAPPER) Wrapper<T> queryWrapper, ResultHandler<T> resultHandler);
+
 
     /**
      * 根据 Wrapper 条件,查询全部记录
@@ -244,6 +283,15 @@ public interface BaseMapper<T> extends Mapper<T> {
      */
     List<Map<String, Object>> selectMaps(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
 
+    /**
+     * 根据 Wrapper 条件,查询全部记录
+     *
+     * @param queryWrapper  实体对象封装操作类
+     * @param resultHandler 结果处理器 {@link ResultHandler}
+     * @since 3.5.4
+     */
+    void selectMaps(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper, ResultHandler<T> resultHandler);
+
     /**
      * 根据 Wrapper 条件,查询全部记录(并翻页)
      *
@@ -253,6 +301,15 @@ public interface BaseMapper<T> extends Mapper<T> {
      */
     List<Map<String, Object>> selectMaps(IPage<? extends Map<String, Object>> page, @Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
 
+    /**
+     * 根据 Wrapper 条件,查询全部记录(并翻页)
+     *
+     * @param page          分页查询条件
+     * @param queryWrapper  实体对象封装操作类
+     * @param resultHandler 结果处理器 {@link ResultHandler}
+     * @since 3.5.4
+     */
+    void selectMaps(IPage<? extends Map<String, Object>> page, @Param(Constants.WRAPPER) Wrapper<T> queryWrapper, ResultHandler<T> resultHandler);
 
     /**
      * 根据 Wrapper 条件,查询全部记录
@@ -262,6 +319,16 @@ public interface BaseMapper<T> extends Mapper<T> {
      */
     List<Object> selectObjs(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
 
+    /**
+     * 根据 Wrapper 条件,查询全部记录
+     * <p>注意: 只返回第一个字段的值</p>
+     *
+     * @param queryWrapper  实体对象封装操作类(可以为 null)
+     * @param resultHandler 结果处理器 {@link ResultHandler}
+     * @since 3.5.4
+     */
+    void selectObjs(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper, ResultHandler<Object> resultHandler);
+
     /**
      * 根据 entity 条件,查询全部记录(并翻页)
      *