一、使用QueryWrapper分页查询
TTemplateData 为实体
condition为前端所传所有查询条件实体
keys 为前端搜索框条件
QueryWrapper<TTemplateData> templateWrapper = new QueryWrapper<>();
String keys = condition.getSearchCondition();
templateWrapper.eq("status", 0);
if(null != condition.getStartTime() && !condition.getStartTime().isEmpty()){
templateWrapper.gt("create_time",condition.getStartTime());
}
if(null != condition.getEndTime() && !condition.getEndTime().isEmpty()){
templateWrapper.lt("create_time",condition.getEndTime());
}
//keys一个搜索框为匹配多个字段
if(null != keys){
templateWrapper.and(wrapper -> wrapper.like("template_no",keys).or().like("template_name",keys)
.or().like("template_type_name",keys).or().like("create_name",keys));
}
templateWrapper.orderByDesc("create_time");
Page<TTemplateData> page = new Page<>(condition.getPage(), condition.getPageSize());
IPage<TTemplateData> templateIPage = tTemplateDataMapper.selectPage(page, templateWrapper);
return Result.SUCCESS(templateIPage);
二、使用sql语句分页查询
实现类
String keys = condition.getSearchCondition();
Page<TLabel> page = new Page<>(condition.getPage(), condition.getPageSize());
IPage<TLabel> labelIPage = tLabelMapper.selectPageList(page,keys,condition.getLabelTypeName());
return Result.SUCCESS(labelIPage);
mapper接口
IPage<TLabel> selectPageList(@Param("page") Page<TLabel> page,@Param("labelName") String labelName,@Param("labelTypeName") String labelTypeName);
xml实现
<select id = "selectPageList" resultMap="BaseResultMap">
select l.*,t.label_type_name labelTypeName from t_label l left join t_label_type t on l.label_type_id = t.id and t.status = 0
where l.status = 0
<if test="labelName != null and labelName != ''">
and l.label_name like concat('%',#{labelName},'%')
</if>
<if test="labelTypeName != null and labelTypeName != ''">
and t.label_type_name = #{labelTypeName}
</if>
</select>
本文详细介绍了如何使用MyBatis的QueryWrapper进行分页查询,包括条件筛选、时间范围限定及多字段模糊搜索,并展示了如何通过SQL语句实现分页查询,适用于后端开发人员快速掌握MyBatis分页技巧。
8790

被折叠的 条评论
为什么被折叠?



