MyBatis-Plus 提供了强大的条件构造器,用于构建灵活的 SQL 查询条件。这些条件构造器可以帮助开发者以编程的方式构建复杂的查询条件,而无需手动拼接 SQL 语句,从而提高开发效率和代码的可读性。其中,LambdaQueryWrapper
和 QueryWrapper
是最常用的两种条件构造器。
1. LambdaQueryWrapper 和 QueryWrapper 的区别
-
LambdaQueryWrapper
:-
基于 Lambda 表达式,可以利用 Java 8 的特性,通过实体类的字段直接构建查询条件。
-
自动识别字段名,避免了手动拼接字段名的错误。
-
更加类型安全,编译时会检查字段是否存在。
-
-
QueryWrapper
:-
基于字符串,需要手动指定字段名。
-
更加灵活,可以构建复杂的 SQL 片段。
-
适用于一些复杂的查询场景,例如动态拼接字段名。
-
2. LambdaQueryWrapper 示例
使用 LambdaQueryWrapper
构建查询条件
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.example.entity.User;
public class LambdaQueryWrapperExample {
public static void main(String[] args) {
// 创建 LambdaQueryWrapper
LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();
// 构建查询条件
wrapper.eq(User::getName, "Alice") // 等于
.gt(User::getAge, 18) // 大于
.like(User::getAddress, "%某某%") // 模糊查询
.order