QueryWrapper和LambdaQueryWrapper都是MyBatis-Plus提供的查询条件构造器,用于构建SQL查询条件。它们的区别在于LambdaQueryWrapper支持Lambda表达式,可以更加方便地编写条件查询语句。
使用QueryWrapper时,需要手动编写SQL查询条件,如:
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("name", "Tom").gt("age", 18);
List<User> userList = userMapper.selectList(queryWrapper);
使用LambdaQueryWrapper时,可以使用Lambda表达式来构建查询条件,如:
LambdaQueryWrapper<User> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(User::getName, "Tom").gt(User::getAge, 18);
List<User> userList = userMapper.selectList(lambdaQueryWrapper);
LambdaQueryWrapper的优点在于:
但是,LambdaQueryWrapper也有一些限制:
因此,在实际使用中,需要根据具体的业务场景选择使用QueryWrapper还是LambdaQueryWrapper。