傳統的XML分頁以及模糊查詢操作
傳統的XML方式只能使用limit以及offset進行分頁,通過判斷name和bindState是否為空,不為空則拼接條件。
List<SanitationCompanyStaff> getSanitationStaffInfo(@Param("name") String name,@Param("bindState") String bindState,@Param("current") Long current,@Param("size") Long size);
<select id="getSanitationStaffInfo" resultType="com.yutu.garden.entity.SanitationCompanyStaff">select * from sanitation_company_staffwhere 0 = 0<if test="name != null and name != ''">and name like concat('%', #{name}, '%')</if><if test="bindState != null and bindState != ''">and bind_state like concat('%', #{bindState}, '%')</if>limit 5 offset 0
</select>
Mybatis Plus分頁以及模糊查詢操作
只需要在Service實現類中直接調用Mybatis Plus的方法即可進行操作。
/*** 獲取環衛工列表數據* @param name:名字* @param bindState:綁定狀態* @param current:頁碼* @param size:每頁大小* @return*/
@Override
public Page<SanitationCompanyStaff> getSanitationStaffInfo(String name,String bindState,Long current,Long size) {LambdaQueryWrapper<SanitationCompanyStaff> wrapper = new LambdaQueryWrapper<>();//如果前端傳的name不為空,則進行like模糊查詢if (StringUtils.isNotEmpty(name)){wrapper.like(SanitationCompanyStaff::getName,name);}//如果前端傳的bindState不為空,則進行eq匹配if (StringUtils.isNotEmpty(bindState)){wrapper.eq(SanitationCompanyStaff::getBindState,bindState);}//通過current、size進行分頁Page<SanitationCompanyStaff> sanitationStaffInfoPage = new Page<>(current,size);this.page(sanitationStaffInfoPage,wrapper);return sanitationStaffInfoPage;
}
return Page<SanitationCompanyStaff>類型可以得到數據的總數,你也可以通過.getRecords()方式獲取List集合
這樣子,我們就可以通過Mybatis Plus得到分頁數據了!