MyBatis-Plus中分页插件IPage的使用
使用步骤:
1.服务层的接口需要继承 IService<实体类> ,定义分页查询方法,其返回值类型是 IPage<实体类> .
2.服务的实现类要继承 ServiceImpl< Mapper接口类,实体类 > ,重写分页查询方法.
3.可以定义一个Page类
controller:
@PostMapping("/getBomPage")
@ApiOperation(value = "BOM列表分页查询", notes = "BOM列表分页查询")
public IPage<BomDetailPageDTO> getBomPage(@RequestBody PageParams<ConditionBomDetailDTO> params) {
return baseService.getBomPage(params);
}
service:
/**
* BOM列表分页查询
* @param params 分页参数
* @return 结果
*/
IPage<BomDetailPageDTO> getBomPage(PageParams<ConditionBomDetailDTO> params);
serviceImpl:
@Override
public IPage<BomDetailPageDTO> getBomPage(PageParams<ConditionBomDetailDTO> params) {
IPage<BomBasicDTO> page = params.buildPage();
ConditionBomDetailDTO model = params.getModel();
return carTaiZhangMapper.getBomPage(page, model);
}
说明:carTaiZhangMapper为对应的Mapper接口类,getListPage为自定义的分页查询方法。
在对应的Mapper接口类(如上述的carTaiZhangMapper)继承 BaseMapper<实体类>.
mapper:
/**
* BOM列表分页查询
* @param page 入参
* @param model 入参
* @return 查询结果
*/
IPage<BomDetailPageDTO> getBomPage(IPage<BomBasicDTO> page, @Param("model") ConditionBomDetailDTO model);
编写映射文件Mapper.xml,创建对应方法的SQL语句:
<select id="getBomPage" resultMap="getBomPageMap">
select *
from view_bom_data
<where>
1=1
<if test="model.projectId != null">
and project_id=${
model.projectId