本文已收录在Github,关注我,紧跟本系列专栏文章,咱们下篇再续!
- 🚀 魔都架构师 | 全网30W技术追随者
 - 🔧 大厂分布式系统/数据中台实战专家
 - 🏆 主导交易系统百万级流量调优 & 车联网平台架构
 - 🧠 AIGC应用开发先行者 | 区块链落地实践者
 - 🌍 以技术驱动创新,我们的征途是改变世界!
 - 👉 实战干货:编程严选网
 
LambdaQueryWrapper 和 QueryWrapper 都是 MyBatis-Plus 中用于构建查询条件的封装器,它们的主要区别在于:
1 主要区别
1.1 引用方式不同
- QueryWrapper 使用字符串表示字段名:
.eq("name", value) - LambdaQueryWrapper 用 Lambda 表达式引用字段:
.eq(User::getName, value) 
类型安全
- LambdaQueryWrapper类型安全,编译期可检查字段是否存在
 - QueryWrapper用字符串,易拼写错误且编译期无法检测
 
重构友好性
- 使用 LambdaQueryWrapper ,若修改实体类字段名,IDE 会提示重构所有引用
 - QueryWrapper 使用的字符串不会自动跟随类字段变更而更新
 
2 使用示例
QueryWrapper 用法:
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.eq("name", "张三")
       .gt("age", 18)
       .like("email", "test");
LambdaQueryWrapper 用法:
LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(User::getName, "张三")
       .gt(User::getAge, 18)
       .like(User::getEmail, "test");
3 建议
- 推荐使用 LambdaQueryWrapper,因为它类型安全,减少拼写错误引起的问题
 - 在重构时,LambdaQueryWrapper 更有优势,字段变更会自动关联到引用处
 - 如果需要使用动态列名或数据库原生语法,则 QueryWrapper 更灵活
 
点击查看更多内容
					为 TA 点赞
										
				 评论
				共同学习,写下你的评论
评论加载中...
作者其他优质文章
					正在加载中
				
			感谢您的支持,我会继续努力的~
		扫码打赏,你说多少就多少
		赞赏金额会直接到老师账户
		支付方式
		打开微信扫一扫,即可进行扫码打赏哦