@ApiOperation(value = "条件过滤分页查询列表")@PostMapping("/list/conditions")public ResponseDTO<PageResultDTO<UnitManagementsEntity>> getAllUnitManagementsWithConditions(@RequestBody PageParamDTO queryDTO,@RequestParam(required = false) String unitName,@RequestParam(required = false) Integer unitLevel) {return unitManagementService.queryByPageWithConditions2(queryDTO, unitName, unitLevel);}
@Data
public class PageParamDTO {@NotNull(message = "分页参数不能为空")@ApiModelProperty(value = "页码(不能为空)", example = "1")protected Integer pageNum;@NotNull(message = "每页数量不能为空")@ApiModelProperty(value = "每页数量(不能为空)", example = "10")@Max(value = 500, message = "每页最大为500")protected Integer pageSize;@ApiModelProperty("是否查询总条数")protected Boolean searchCount;@ApiModelProperty("排序")protected List<OrderItemDTO> orders;
}
@Overridepublic ResponseDTO<PageResultDTO<UnitManagementsEntity>> queryByPageWithConditions2(PageParamDTO queryDTO, String unitName, Integer unitLevel) {// 将页面参数转换为查询分页对象Page<UnitManagementsEntity> page = SmartPageUtil.convert2QueryPage(queryDTO);// 调用DAO层方法进行查询IPage<UnitManagementsEntity> userIPage = unitManagementDao.selectPageWithConditions2(page, unitName, unitLevel);// 将查询结果设置到分页对象中page.setRecords(userIPage.getRecords());// 将分页对象转换为分页结果DTOPageResultDTO<UnitManagementsEntity> pageResultDTO = SmartPageUtil.convert2PageResult(page);// 返回成功响应DTO,并携带分页结果DTOreturn ResponseDTO.succData(pageResultDTO);}
<select id="selectPageWithConditions2" resultType="com.sxkj.government.management.module.system.unit.domain.entity.UnitManagementsEntity">SELECT *FROM t_unit_managements<where>isdel = 0<if test="unitName != null and unitName != ''">AND unit_name = #{unitName}</if><if test="unitLevel != null">AND unit_name LIKE CONCAT('%', #{unitName}, '%')</if></where>
<!-- LIMIT #{page.current}, #{page.size}--></select>
提问:
IPage<UnitManagementsEntity> selectPageWithConditions2(@Param("page") IPage<UnitManagementsEntity> page,@Param("unitName") String unitName,@Param("unitLevel") Integer unitLevel);
IPage<UnitManagementsEntity>为什么IPage中可以放UnitManagementsEntity,IPage 是类似于List集合吗
T
是UnitManagementsEntity
,意味着这个分页对象将包含UnitManagementsEntity
类型的条目。
IPage<T>
接口通常包括以下几个重要的属性:
List<T> records
: 存放当前页的记录列表。long total
: 总记录数。long size
: 每页显示的记录数。long current
: 当前页。
IPage
在某种程度上类似于Java的List
集合,但它提供了更多用于分页的附加信息。
属性拷贝:
Bean拷贝常用框架使用姿势与性能对比-阿里云开发者社区 (aliyun.com)
链接:
MyBatis-Plus 之分页查询_mybatisplus分页_ITKaven的博客-CSDN博客
MyBatis-plus中的模糊查询解读_java_脚本之家