Mybatis-Plus LambdaQueryWrapper梳理

为了更方便的实现动态 SQL,Mybatis Plus 在其基础上扩展了 LambdaQueryWrapper,LambdaQueryWrapper 提供了​​更加简便的查询语法​​​,同时也​​避免了 SQL 注入​​的风险。

LambdaQueryWrapper 实现了 ​​QueryWrapper​​​ 的全部功能,并提供了基于 ​​Lambda​​​ 表达式的查询方式,使得查询语法更加优雅。使用 LambdaQueryWrapper,可以方便的实现各种查询条件的拼接,如 ​​where​​​、​​and​​​、​​or​​​、​​in​​​、​​like​​​、​​between​​ 等条件。

LambdaQueryWrapper 通过函数式编程的方式,​​提供了多种方法用于实现各种查询条件的拼接​​,这些方法包括 eq、ne、gt、ge、lt、le、in、notIn、like、notLike、between、notBetween、isNull、isNotNull 等。

与QueryWrapper对比
LambdaQueryWrapper 和 QueryWrapper 都是 Mybatis Plus 中的查询条件封装类,其中 LambdaQueryWrapper 是基于 Lambda 表达式的实现,而 QueryWrapper 是​​基于字符串​​的实现。它们的优缺点如下:

LambdaQueryWrapper 优点
代码简洁,易读易写,使用 Lambda 表达式可​​避免手写字符串​​​的​​繁琐​​​和​​容易出错​​;
类型安全,LambdaQueryWrapper 在​​编译期间就能够捕获类型错误​​​,​​避免运行时出现类型错误​​;
更加灵活,LambdaQueryWrapper ​​支持链式调用​​,支持多个条件之间的 and 和 or 关系组合,支持子查询等复杂查询操作。
LambdaQueryWrapper 缺点
LambdaQueryWrapper 基于 Lambda 表达式实现,​​可能存在一些性能问题​​,在大数据量查询时可能会影响查询性能。
QueryWrapper 优点
在少量数据查询时,QueryWrapper 通常比 LambdaQueryWrapper 更快,因为它​​不需要解析 Lambda 表达式​​;
QueryWrapper 更加灵活,可以使用字符串直接拼接 SQL,​​支持 SQL 函数等更多高级查询操作​​;
对于老旧代码,QueryWrapper 更加​​适合兼容​​​和​​扩展​​。
QueryWrapper 缺点
代码可读性和可维护性较差,​​手写 SQL 字符串容易出错​​​,并且​​不易于维护​​​和​​修改​​;
使用字符串拼接 SQL,​​容易受到 SQL 注入​​​,​​需要特别注意防范​​;
​​编译期不能捕获类型错误​​,需要在运行时才能发现类型错误。
综上推荐使用 LambdaQueryWrapper(此外,LambdaQueryWrapper 还具有良好的兼容性和扩展性,可以轻松适应不同的业务需求,提高开发效率和代码质量)。
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值