作为企业开发新人,在学习过程中学习mybatis 的基础非常不牢,毕竟mybatis plus简直太方便啦~
但是你早晚会遇见mybatis plus满足不了的情况,或者不好实现的情况。
这时为了满足分页查询的方法,我总结了最简单的方法。
第一步:定义page
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
// 如果从requestBody中获取的pageindex为null,则pageIndex=1。
Integer pageIndex = OptionalUtils.getDefaultValue(apiCallTotalModel.getPageIndex(), 1);
// 如果从requestBody中获取的pageSize为null,则pageSize=10。
Integer pageSize =OptionalUtils.getDefaultValue(apiCallTotalModel.getPageSize(), 10);
IPage<ApiCallTotalEntity> page = new Page<>(pageIndex,pageSize);
第二步:定义接口
Page<ApiCallTotalEntity> queryByApiCode(@Param("apiCode") String apiCode,
@Param("page") IPage<ApiCallTotalEntity> page);
第三步:编写SQL语句
<select id="queryByApiCode" resultMap="BaseResultMap">
SELECT t.api_code,
t.app_code,
SUM(t.success_num) AS success_num,
SUM(t.failure_num) AS failure_num,
SUM(t.success_total_time) AS success_total_time
FROM ds_api_call_total t
<where>
<if test="apiCode != null and apiCode != ''">
t.api_code = #{apiCode}
</if>
</where>
GROUP BY t.api_code
</select>
第四步:调用mapper,执行方法
Page<ApiCallTotalEntity> pageEntity = apiCallTotalMapper.queryByApiCode(apiCode, page);
List<ApiCallTotalEntity> apiCallTotalEntities = pageEntity.getRecords();
第五步:完成!
是不是很简单,不需要在sql里写 limit 设置分页的大小。
而且page的设置 可以由前端控制。
如果本篇文章对你有所帮助,还请一键三连【开心】