Mybatis Plus 提供了强大的条件构造器,在不写sql映射文件的情况下,完成复杂的查询和修改数据的操作。
条件构造器用于生成sql的where条件,包括 QueryWrapper, UpdateWrapper, LambdaQueryWrapper, LambdaUpdateWrapper 四个类,其中后两个使用 Lambda 语法表达式,继承 AbstractLambdaWrapper 抽象类,AbstractLambdaWrapper 和 QueryWrapper, UpdateWrapper 继承 AbstractWrapper 抽象类,它们的父类为 Wrapper 抽象类。
使用起来很简单,
1、QueryWrapper 的使用,支持的方法可以从Mybatis Plus官网上查到。
@RequestMapping("getCount")
public int getCount(BookRequest request) {
try {
LambdaQueryWrapper<Book> query = new LambdaQueryWrapper<>();
query.like(Book::getName, request.getName());
return bookService.count(query);
} catch (Exception e) {
e.printStackTrace();
return 0;
}
}
查询name包含输入参数name的记录的条目数。
2、UpdateWrapper 的使用,用于生成update语句的where条件
@RequestMapping("editBook")
public boolean editBook(BookRequest request) {
try {
LambdaUpdateWrapper<Book> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(Book::getId, 8).set(Book::getName, request.getName());
return bookService.update(updateWrapper);
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
将id=8的记录的name字段的值修改为接口传入的name参数的值