Mybatis Plus中使用LambdaQueryWrapper进行分页以及模糊查询对比传统XML方式进行分页

传统的XML分页以及模糊查询操作

传统的XML方式只能使用limit以及offset进行分页,通过判断name和bindState是否为空,不为空则拼接条件。

java 复制代码
List<SanitationCompanyStaff> getSanitationStaffInfo(@Param("name") String name,
													@Param("bindState") String bindState,
													@Param("current") Long current,
													@Param("size") Long size);
xml 复制代码
<select id="getSanitationStaffInfo" resultType="com.yutu.garden.entity.SanitationCompanyStaff">
    select * from sanitation_company_staff
    where 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的方法即可进行操作。

java 复制代码
/**
 * 获取环卫工列表数据
 * @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得到分页数据了!

相关推荐
Java小白程序员4 小时前
MyBatis基础到高级实践:全方位指南(中)
数据库·mybatis
山楂树下懒猴子5 小时前
ChatAI项目-ChatGPT-SDK组件工程
人工智能·chatgpt·junit·https·log4j·intellij-idea·mybatis
Mr_hwt_12315 小时前
基于mybatis-plus动态数据源实现mysql集群读写分离和从库负载均衡教程(详细案例)
数据库·spring boot·mysql·mybatis·mysql集群
Z_z在努力1 天前
【杂类】Spring 自动装配原理
java·spring·mybatis
l1t1 天前
轻量级XML读写库Mini-XML的编译和使用
xml·c语言·解析器
微笑伴你而行1 天前
标注格式转换csv转xml
xml
little_xianzhong1 天前
关于对逾期提醒的定时任务~改进完善
java·数据库·spring boot·spring·mybatis
MadPrinter1 天前
SpringBoot学习日记 Day11:博客系统核心功能深度开发
java·spring boot·后端·学习·spring·mybatis
fatiaozhang95271 天前
中国移动中兴云电脑W132D-RK3528-2+32G-刷机固件包(非原机制作)
android·xml·电脑·电视盒子·刷机固件·机顶盒刷机
奔跑吧邓邓子1 天前
【Java实战㉟】Spring Boot与MyBatis:数据库交互的进阶之旅
java·spring boot·实战·mybatis·数据库交互