下面详细介绍Mybatis-plus 的默认服务IService.class 中的查询数据的方法及使用。
方法定义及其详细介绍
-
default List<T> list(Wrapper<T> queryWrapper)
javadefault List<T> list(Wrapper<T> queryWrapper) { return this.getBaseMapper().selectList(queryWrapper); }
-
功能 :根据传入的
queryWrapper
查询符合条件的所有记录。 -
参数 :
queryWrapper
:Wrapper<T>
实例,用于定义查询条件。这可以是QueryWrapper<T>
或LambdaQueryWrapper<T>
,允许你以链式调用的方式构建查询条件。
-
返回值:符合查询条件的记录列表。
-
使用方法 :
javaQueryWrapper<TOreq> queryWrapper = new QueryWrapper<>(); queryWrapper.eq("status", "active"); List<TOreq> activeRecords = service.list(queryWrapper);
-
-
default List<T> list(IPage<T> page, Wrapper<T> queryWrapper)
javadefault List<T> list(IPage<T> page, Wrapper<T> queryWrapper) { return this.getBaseMapper().selectList(page, queryWrapper); }
-
功能:分页查询符合条件的记录,返回当前页的数据列表。
-
参数 :
page
:IPage<T>
实例,用于指定分页信息,如当前页码和每页记录数。通常使用Page<T>
类的实现。queryWrapper
:Wrapper<T>
实例,用于定义查询条件。
-
返回值:当前页符合条件的记录列表。
-
使用方法 :
javaIPage<TOreq> page = new Page<>(1, 10); // 第1页,每页10条记录 QueryWrapper<TOreq> queryWrapper = new QueryWrapper<>(); queryWrapper.eq("status", "active"); IPage<TOreq> resultPage = service.list(page, queryWrapper); List<TOreq> activeRecords = resultPage.getRecords();
-
-
default List<T> list()
javadefault List<T> list() { return this.list((Wrapper)Wrappers.emptyWrapper()); }
-
功能:查询所有记录,不使用任何查询条件。
-
参数:无。
-
实现 :调用
list(Wrapper<T> queryWrapper)
方法,并传递一个空的Wrapper
实例。Wrappers.emptyWrapper()
返回一个空的Wrapper
实例,表示没有任何查询条件。 -
返回值:所有记录的列表。
-
使用方法 :
javaList<TOreq> allRecords = service.list();
-
-
default List<T> list(IPage<T> page)
javadefault List<T> list(IPage<T> page) { return this.list(page, Wrappers.emptyWrapper()); }
-
功能:分页查询所有记录,不使用任何查询条件。
-
参数 :
page
:IPage<T>
实例,用于指定分页信息。
-
实现 :调用
list(IPage<T> page, Wrapper<T> queryWrapper)
方法,并传递一个空的Wrapper
实例。Wrappers.emptyWrapper()
返回一个空的Wrapper
实例,表示没有任何查询条件。 -
返回值:当前页的数据列表,包括所有记录。
-
使用方法 :
javaIPage<TOreq> page = new Page<>(1, 10); // 第1页,每页10条记录 List<TOreq> allRecords = service.list(page);
-
区别及使用方法总结
-
查询条件:
list(Wrapper<T> queryWrapper)
和list(IPage<T> page, Wrapper<T> queryWrapper)
:允许使用自定义的查询条件。list()
和list(IPage<T> page)
:不使用查询条件,分别是查询所有记录和分页查询所有记录。
-
分页:
list(IPage<T> page, Wrapper<T> queryWrapper)
和list(IPage<T> page)
:支持分页查询,需要提供IPage<T>
实例。list(Wrapper<T> queryWrapper)
和list()
:不支持分页查询,返回所有符合条件的记录。
-
默认实现:
list()
和list(IPage<T> page)
方法使用Wrappers.emptyWrapper()
作为查询条件,默认情况下查询所有记录或进行分页查询所有记录。list(Wrapper<T> queryWrapper)
和list(IPage<T> page, Wrapper<T> queryWrapper)
方法允许传递具体的查询条件或分页信息,提供更灵活的查询方式。
使用示例
-
查询所有记录:
javaList<TOreq> allRecords = service.list();
-
分页查询所有记录:
javaIPage<TOreq> page = new Page<>(1, 10); // 第1页,每页10条记录 List<TOreq> pagedRecords = service.list(page);
-
使用条件查询所有记录:
javaQueryWrapper<TOreq> queryWrapper = new QueryWrapper<>(); queryWrapper.eq("status", "active"); List<TOreq> activeRecords = service.list(queryWrapper);
-
分页条件查询:
javaIPage<TOreq> page = new Page<>(1, 10); // 第1页,每页10条记录 QueryWrapper<TOreq> queryWrapper = new QueryWrapper<>(); queryWrapper.eq("status", "active"); IPage<TOreq> resultPage = service.list(page, queryWrapper); List<TOreq> activeRecords = resultPage.getRecords();
这些方法提供了不同的查询方式,允许你灵活地获取所需的数据。根据实际需求选择合适的方法进行数据查询。