【1】 常规查询
Wrapper<Product> wrapper =
new QueryWrapper<Product>()
.lambda()
.in(Product::getNumIid, numIids)
.eq(Product::getDeleted, BooleanEnum.NO.key());
// 查询结果
List<Product> productList = mapper.selectList(wrapper);
【2】条件查询
Wrapper<Product> wrapper =
new QueryWrapper<Product>()
.lambda()
// 如果 numIids 集合个数大于0的时候,才带该条件查询
.in(numIids.size() > 0, Product::getNumIid, numIids)
.eq(Product::getDeleted, BooleanEnum.NO.key());
// 查询结果
List<Product> productList = mapper.selectList(wrapper);
【3】分页查询
// 构造查询条件
Wrapper<Product> wrapper =
new QueryWrapper<Product>()
.lambda()
.in(numIids.size() > 0, Product::getNumIid, numIids)
.eq(Product::getDeleted, BooleanEnum.NO.key());
// 构造分页条件 (第1页,页面大小为10)
IPage<Product> page = new Page<>();
page.setCurrent(1L);
page.setSize(10L);
IPage<Product> p = mapper.selectPage(page, wrapper);
// 当前页对象集合
List<Product> productList = p.getRecords();
// 第几页
long pageNum = p.getCurrent();
// 页面大小
long pageSize = p.getSize();
// 总记录数
long total = p.getTotal();
// 总页数
long pages = p.getPages();
【4】原生 SQL 拼接查询
String sql = " name='苹果' AND price = 18 ";
Wrapper<Product> wrapper =
new QueryWrapper<Product>()
.lambda().apply(sql)
.like(Product::getSceneIds, req.getSceneId())
.orderByDesc(Product::getSoldQuantity);
// 查询结果
List<Product> productList = mapper.selectList(wrapper);