Browse Source

重载查询方法.

nieqiurong 1 year ago
parent
commit
bef1f33ab8

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

@@ -39,6 +39,17 @@ public interface ChainQuery<T> extends ChainWrapper<T> {
         return execute(mapper -> mapper.selectList(getWrapper()));
     }
 
+    /**
+     * 获取集合
+     *
+     * @param page 分页条件
+     * @return 集合记录
+     * @since 3.5.3.2
+     */
+    default List<T> list(IPage<T> page) {
+        return execute(mapper -> mapper.selectList(page, getWrapper()));
+    }
+
     /**
      * 获取单个
      *

+ 47 - 0
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/service/IService.java

@@ -401,6 +401,18 @@ public interface IService<T> {
         return getBaseMapper().selectList(queryWrapper);
     }
 
+    /**
+     * 查询列表
+     *
+     * @param page         分页条件
+     * @param queryWrapper queryWrapper 实体对象封装操作类 {@link com.baomidou.mybatisplus.core.conditions.query.QueryWrapper}
+     * @return 列表数据
+     * @since 3.5.3.2
+     */
+    default List<T> list(IPage<T> page, Wrapper<T> queryWrapper) {
+        return getBaseMapper().selectList(page, queryWrapper);
+    }
+
     /**
      * 查询所有
      *
@@ -410,6 +422,17 @@ public interface IService<T> {
         return list(Wrappers.emptyWrapper());
     }
 
+    /**
+     * 分页查询单表数据
+     *
+     * @param page 分页条件
+     * @return 列表数据
+     * @since 3.5.3.2
+     */
+    default List<T> list(IPage<T> page) {
+        return list(page, Wrappers.emptyWrapper());
+    }
+
     /**
      * 翻页查询
      *
@@ -439,6 +462,19 @@ public interface IService<T> {
         return getBaseMapper().selectMaps(queryWrapper);
     }
 
+    /**
+     * 查询列表
+     *
+     * @param page         分页条件
+     * @param queryWrapper 实体对象封装操作类 {@link com.baomidou.mybatisplus.core.conditions.query.QueryWrapper}
+     * @return 列表数据
+     * @since 3.5.3.2
+     */
+    default List<Map<String, Object>> listMaps(IPage<? extends Map<String, Object>> page, Wrapper<T> queryWrapper) {
+        return getBaseMapper().selectMaps(page, queryWrapper);
+    }
+
+
     /**
      * 查询所有列表
      *
@@ -448,6 +484,17 @@ public interface IService<T> {
         return listMaps(Wrappers.emptyWrapper());
     }
 
+    /**
+     * 查询列表
+     *
+     * @param page 分页条件
+     * @see Wrappers#emptyWrapper()
+     */
+    default List<Map<String, Object>> listMaps(IPage<? extends Map<String, Object>> page) {
+        return listMaps(page, Wrappers.emptyWrapper());
+    }
+
+
     /**
      * 查询全部记录
      */

+ 74 - 0
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/toolkit/Db.java

@@ -388,6 +388,17 @@ public class Db {
         return SqlHelper.execute(getEntityClass(queryWrapper), baseMapper -> baseMapper.selectList(queryWrapper));
     }
 
+    /**
+     * @param page         分页条件
+     * @param queryWrapper 实体对象封装操作类 {@link com.baomidou.mybatisplus.core.conditions.query.QueryWrapper}
+     * @param <T>          entity
+     * @return 列表数据
+     */
+    public static <T> List<T> list(IPage<T> page, AbstractWrapper<T, ?, ?> queryWrapper) {
+        return SqlHelper.execute(getEntityClass(queryWrapper), baseMapper -> baseMapper.selectList(page, queryWrapper));
+    }
+
+
     /**
      * 查询所有
      *
@@ -398,6 +409,18 @@ public class Db {
         return SqlHelper.execute(entityClass, baseMapper -> baseMapper.selectList(null));
     }
 
+    /**
+     * @param page        分页条件
+     * @param entityClass 实体类
+     * @param <T>         entity
+     * @return 列表数据
+     * @since 3.5.3.2
+     */
+    public static <T> List<T> list(IPage<T> page, Class<T> entityClass) {
+        return SqlHelper.execute(entityClass, baseMapper -> baseMapper.selectList(page, null));
+    }
+
+
     /**
      * 根据entity中不为空的字段进行查询
      *
@@ -408,6 +431,19 @@ public class Db {
         return list(Wrappers.lambdaQuery(entity));
     }
 
+    /**
+     * 根据entity中不为空的字段进行查询
+     *
+     * @param page   分页条件
+     * @param entity 实体类
+     * @param <T>    entity
+     * @return 列表数据
+     * @since 3.5.3.2
+     */
+    public static <T> List<T> list(IPage<T> page, T entity) {
+        return list(page, Wrappers.lambdaQuery(entity));
+    }
+
     /**
      * 查询列表
      *
@@ -417,6 +453,17 @@ public class Db {
         return SqlHelper.execute(getEntityClass(queryWrapper), baseMapper -> baseMapper.selectMaps(queryWrapper));
     }
 
+    /**
+     * @since 3.5.3.2
+     * @param page 分页参数
+     * @param queryWrapper queryWrapper 实体对象封装操作类 {@link com.baomidou.mybatisplus.core.conditions.query.QueryWrapper}
+     * @return 列表数据
+     * @param <T> entity
+     */
+    public static <T> List<Map<String, Object>> listMaps(IPage<? extends Map<String, Object>> page, AbstractWrapper<T, ?, ?> queryWrapper) {
+        return SqlHelper.execute(getEntityClass(queryWrapper), baseMapper -> baseMapper.selectMaps(page, queryWrapper));
+    }
+
     /**
      * 查询所有列表
      *
@@ -427,6 +474,20 @@ public class Db {
         return SqlHelper.execute(entityClass, baseMapper -> baseMapper.selectMaps(null));
     }
 
+    /**
+     * 分页查询列表
+     *
+     * @param page        分页条件
+     * @param entityClass 实体类
+     * @param <T>         entity
+     * @return 列表数据
+     * @since 3.5.3.2
+     */
+    public static <T> List<Map<String, Object>> listMaps(IPage<? extends Map<String, Object>> page, Class<T> entityClass) {
+        return SqlHelper.execute(entityClass, baseMapper -> baseMapper.selectMaps(page, null));
+    }
+
+
     /**
      * 根据entity不为空的条件查询列表
      *
@@ -436,6 +497,19 @@ public class Db {
         return listMaps(Wrappers.lambdaQuery(entity));
     }
 
+    /**
+     * 根据entity不为空的条件查询列表
+     *
+     * @param page   分页条件
+     * @param entity entity
+     * @param <T>    entity
+     * @return 列表数据
+     * @since 3.5.3.2
+     */
+    public static <T> List<Map<String, Object>> listMaps(IPage<? extends Map<String, Object>> page, T entity) {
+        return listMaps(page, Wrappers.lambdaQuery(entity));
+    }
+
     /**
      * 查询全部记录
      *

+ 44 - 0
mybatis-plus/src/test/java/com/baomidou/mybatisplus/test/h2/H2UserTest.java

@@ -617,6 +617,7 @@ class H2UserTest extends BaseTest {
         Page page = Page.of(1, -1);
         userService.lambdaQuery().page(page);
         Assertions.assertEquals(page.getTotal(), 0);
+        Assertions.assertEquals(userService.lambdaQuery().list(Page.of(1, -1, false)).size(), page.getRecords().size());
     }
 
     @Test
@@ -771,4 +772,47 @@ class H2UserTest extends BaseTest {
 
     }
 
+    @Test
+    void testListMapsByPage() {
+        Assertions.assertEquals(userService.listMaps().size(), userService.count());
+        Assertions.assertEquals(userService.listMaps(new Page<>(1, 2)).size(), userService.page(new Page<>(1, 2)).getRecords().size());
+        Assertions.assertEquals(userService.listMaps(new Page<>(2, 2)).size(), userService.page(new Page<>(2, 2)).getRecords().size());
+
+        Assertions.assertEquals(
+            userService.pageMaps(new Page<>(1, 2, false)).getRecords().size(),
+            userService.listMaps(new Page<>(1, 2, false)).size()
+        );
+        Assertions.assertEquals(
+            userService.pageMaps(new Page<>(2, 2, false)).getRecords().size(),
+            userService.listMaps(new Page<>(2, 2, false)).size()
+        );
+
+        Assertions.assertEquals(
+            userService.pageMaps(new Page<>(1, 2, false), Wrappers.emptyWrapper()).getRecords().size(),
+            userService.listMaps(new Page<>(1, 2, false), Wrappers.emptyWrapper()).size()
+        );
+        Assertions.assertEquals(
+            userService.pageMaps(new Page<>(2, 2, false), Wrappers.emptyWrapper()).getRecords().size(),
+            userService.listMaps(new Page<>(2, 2, false), Wrappers.emptyWrapper()).size()
+        );
+    }
+
+    @Test
+    void testListByPage(){
+        Assertions.assertEquals(userService.list().size(), userService.count());
+        Assertions.assertEquals(userService.list(new Page<>(1, 2)).size(), userService.page(new Page<>(1, 2)).getRecords().size());
+        Assertions.assertEquals(userService.list(new Page<>(2, 2)).size(), userService.page(new Page<>(2, 2)).getRecords().size());
+        Assertions.assertEquals(
+            userService.list(new Page<>(1, 2, false), Wrappers.emptyWrapper()).size(),
+            userService.page(new Page<>(1, 2, false), Wrappers.emptyWrapper()).getRecords().size()
+        );
+
+        List<H2User> list = userService.list(new Page<>(2, 2, false));
+
+        Assertions.assertEquals(
+            userService.list(new Page<>(2, 2, false), Wrappers.emptyWrapper()).size(),
+            userService.page(new Page<>(2, 2, false), Wrappers.emptyWrapper()).getRecords().size()
+        );
+    }
+
 }

+ 8 - 0
mybatis-plus/src/test/java/com/baomidou/mybatisplus/test/toolkit/DbTest.java

@@ -240,16 +240,24 @@ class DbTest extends BaseDbTest<EntityMapper> {
         Page<Map<String, Object>> page = Db.pageMaps(new Page<>(1, 1), Entity.class);
         Assertions.assertEquals(2, page.getTotal());
 
+        Assertions.assertEquals(Db.listMaps(new Page<>(1, 1, false), Entity.class).size(), page.getRecords().size());
+
         page = Db.pageMaps(new Page<>(1, 1), Wrappers.lambdaQuery(Entity.class));
         Assertions.assertEquals(1, page.getRecords().size());
+
+        Assertions.assertEquals(Db.listMaps(new Page<>(1, 1, false), Wrappers.lambdaQuery(Entity.class)).size(), page.getRecords().size());
     }
 
     @Test
     void testPage() {
         IPage<Entity> page = Db.page(new Page<>(1, 1), Entity.class);
         Assertions.assertEquals(2, page.getTotal());
+        Assertions.assertEquals(Db.list(new Page<Entity>(1, 1), Entity.class).size(),page.getRecords().size());
+
         page = Db.page(new Page<>(1, 1), Wrappers.lambdaQuery(Entity.class));
         Assertions.assertEquals(1, page.getRecords().size());
+
+        Assertions.assertEquals(Db.list(new Page<Entity>(1, 1), Wrappers.lambdaQuery(Entity.class)).size(),page.getRecords().size());
     }
 
     @Test