MyBatis-Plus 提供了一系列的选装件(Wrapper),用于增强 Mapper 层的查询和更新操作。这些选装件可以方便地构建复杂的查询条件,提高了灵活性。以下是 MyBatis-Plus 中常用的选装件:

1. QueryWrapper

QueryWrapper 是用于构建查询条件的选装件,可以通过链式调用的方式构建多条件查询。例如:
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("age", 25)
            .like("name", "John")
            .between("create_time", "2022-01-01", "2022-12-31");
List<User> userList = userMapper.selectList(queryWrapper);

在这个例子中,eq 表示等于,like 表示模糊查询,between 表示在指定范围内。通过 QueryWrapper 可以构建更加复杂的查询条件。

2. UpdateWrapper

UpdateWrapper 是用于构建更新条件的选装件,可以通过链式调用的方式构建多条件更新。例如:
UpdateWrapper<User> updateWrapper = new UpdateWrapper<>();
updateWrapper.set("name", "NewName")
             .eq("age", 25);
userMapper.update(null, updateWrapper);

在这个例子中,set 表示要更新的字段和值,eq 表示等于。通过 UpdateWrapper 可以构建更加复杂的更新条件。

3. LambdaQueryWrapper 和 LambdaUpdateWrapper

LambdaQueryWrapper 和 LambdaUpdateWrapper 是使用 Lambda 表达式构建条件的选装件,提供了类型安全的方式构建查询和更新条件。例如:
LambdaQueryWrapper<User> lambdaQueryWrapper = Wrappers.lambdaQuery(User.class);
lambdaQueryWrapper.eq(User::getAge, 25)
                  .like(User::getName, "John");
List<User> userList = userMapper.selectList(lambdaQueryWrapper);

在这个例子中,通过 Lambda 表达式指定字段,提高了类型安全性。

4. 其他选装件

除了上述的选装件外,MyBatis-Plus 还提供了其他一些选装件,如 EntityWrapper、AbstractWrapper 等,可以根据实际需求选择使用。这些选装件可以更灵活地构建各种复杂的查询和更新条件。
EntityWrapper<User> entityWrapper = new EntityWrapper<>();
entityWrapper.eq("age", 25)
             .like("name", "John");
List<User> userList = userMapper.selectList(entityWrapper);

总的来说,MyBatis-Plus 提供的选装件使得在 Mapper 层构建灵活、复杂的查询和更新条件变得更加容易,同时提高了代码的可读性。你可以根据项目的需求选择合适的选装件,详细的用法和示例可以参考 MyBatis-Plus 的官方文档。


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