Mybatis-Plus предоставляет три часто используемых метода условных запросов, а именно Wrapper, QueryWrapper и LambdaQueryWrapper.
- Обертка
Wrapper — это интерфейс, предоставляющий несколько методов построения, которые можно использовать для построения условий where, например:
Wrapper<User> wrapper = new Wrapper<User>() {
@Override
public String getSqlSegment() {
return "where age > 18 and email like '%@163.com'";
}
};
List<User> userList = userMapper.selectList(wrapper);
Здесь анонимный внутренний класс используется для создания объекта Wrapper, а затем реализуется метод getSqlSegment для возврата условного оператора where.
- QueryWrapper
QueryWrapper — это подкласс Wrapper, предоставляющий более удобные методы условного построения, такие как:
QueryWrapper<User> queryWrapper = new QueryWrapper<User>()
.gt("age", 18)
.likeRight("email", "@163.com");
List<User> userList = userMapper.selectList(queryWrapper);
Здесь мы используем метод gt QueryWrapper, чтобы добавить условие, что возраст больше 18 лет, и используем метод likeRight, чтобы добавить условие, что письмо заканчивается на «@163.com».
- LambdaQueryWrapper
LambdaQueryWrapper также является подклассом QueryWrapper, который может использовать лямбда-выражения для построения условий, например:
LambdaQueryWrapper<User> lambdaQueryWrapper = new LambdaQueryWrapper<User>()
.gt(User::getAge, 18)
.likeRight(User::getEmail, "@163.com");
List<User> userList = userMapper.selectList(lambdaQueryWrapper);
Здесь лямбда-выражения используются для выражения условий, при которых возраст превышает 18 лет, а адрес электронной почты заканчивается на «@163.com».
Вышеупомянутые три метода могут использоваться для операций выбора, удаления и обновления.