1.实现类
public ResponseResult<List<AppDO>> page(AppPageQueryDto appPageQueryDto) {
Integer currentPage = appPageQueryDto.getPageNum();
Integer pageSize = appPageQueryDto.getPageSize();
int count = appMapper.count(appPageQueryDto);
int totalPage = (count + pageSize - 1) / pageSize;
Pagination pagination = PaginationUtils.buildPagination(count, totalPage, currentPage, pageSize);
List<AppDO> appDOList = Lists.newArrayList();
if (count > 0) {
appPageQueryDto.setStartRow((currentPage - 1) * pageSize);
appDOList = appMapper.queryPage(appPageQueryDto);
}
return ResponseResult.newSuccessResponse(appDOList, pagination);
}
2.mapper
int count(AppPageQueryDto appPageQueryDto);
List<AppDO> queryPage(AppPageQueryDto appPageQueryDto);
3.mapper.xml
<parameterMap id="appDOParam" type="com.sj.devops.cmdb.dao.model.AppDO"></parameterMap>
<parameterMap id="appPageParam" type="com.sj.devops.cmdb.dao.model.query.AppPageQueryDto"></parameterMap>
<select id="queryPage" resultMap="BaseResultMap" parameterMap="appPageParam">
SELECT
<include refid="BaseColumns"/>
FROM cmdb_application
<include refid="whereCondition"/>
ORDER BY date_created DESC
LIMIT #{startRow}, #{pageSize}
</select>
<select id="count" resultType="java.lang.Integer" parameterMap="appPageParam">
SELECT
count(1)
FROM cmdb_application
<include refid="whereCondition"/>
</select>
<sql id="whereCondition">
<trim prefix="WHERE" prefixOverrides="AND|OR">
<if test="code!=null and code != ''">
AND code = #{code}
</if>
</trim>
</sql>