MyBatis-Plus 提供了强大的条件构造器(Wrapper),用于在进行数据库查询、更新和删除操作时构建灵活的查询条件。主要的条件构造器有 QueryWrapper、UpdateWrapper、LambdaQueryWrapper、LambdaUpdateWrapper 等,它们分别用于查询和更新操作。

1. QueryWrapper

QueryWrapper 用于构建查询条件,支持链式调用。以下是一些常见的用法:

  •  等值条件:

QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("age", 25);

  •  模糊查询:

queryWrapper.like("name", "John");

  •  范围查询:

queryWrapper.between("age", 20, 30);

  •  排序:

queryWrapper.orderByDesc("age");

  •  多条件组合查询:

queryWrapper.eq("age", 25)
            .like("name", "John")
            .between("create_time", "2022-01-01", "2022-12-31");

2. UpdateWrapper

UpdateWrapper 用于构建更新条件,同样支持链式调用。以下是一些常见的用法:

  •  等值更新:

UpdateWrapper<User> updateWrapper = new UpdateWrapper<>();
updateWrapper.set("name", "NewName")
             .eq("age", 25);

  •  自增、自减操作:

updateWrapper.set("age", 26)
             .setSql("age = age + 1");

3. LambdaQueryWrapper 和 LambdaUpdateWrapper

LambdaQueryWrapper 和 LambdaUpdateWrapper 是使用 Lambda 表达式构建条件的方式,提供了类型安全的查询和更新条件构建:
LambdaQueryWrapper<User> lambdaQueryWrapper = Wrappers.lambdaQuery(User.class);
lambdaQueryWrapper.eq(User::getAge, 25)
                  .like(User::getName, "John");
LambdaUpdateWrapper<User> lambdaUpdateWrapper = Wrappers.lambdaUpdate(User.class);
lambdaUpdateWrapper.set(User::getName, "NewName")
                   .eq(User::getAge, 25);

这样的写法提高了类型安全性。

以上是 MyBatis-Plus 条件构造器的基本用法,通过这些条件构造器,你可以轻松构建复杂的查询和更新条件,而不必直接编写 SQL 语句。根据实际需求,你可以选择合适的条件构造器,并灵活地组合各种条件,使得数据库操作更加方便和可读。 MyBatis-Plus 还提供了更多的高级功能,如 QueryWrapper 的嵌套查询、自定义 SQL 片段等,可以根据需要查阅文档来深入了解。


转载请注明出处:http://www.pingtaimeng.com/article/detail/7051/MyBatis