示例代码
//获取传入的参数
Long categoryId = dish.getCategoryId();
//创建条件构造器
LambdaQueryWrapper<Dish> queryWrapper = new LambdaQueryWrapper<>();
//如果categoryId != null成立则查询
queryWrapper.eq(categoryId != null, Dish::getCategoryId, categoryId);//(实体类::查询字段, 条件值)
//查询状态为1的,即为正在售卖的菜品
queryWrapper.eq(Dish::getStatus, 1);
//排序条件,先根据sort字段排序,相同的再根据createTime字段查询
queryWrapper.orderByAsc(Dish::getSort).orderByAsc(Dish::getCreateTime);
//调用IService中的方法,将
List<Dish> dishList = list(queryWrapper);
对应的查询语句为:
SELECT * FROM dish WHERE (category_id = ? AND status = ?) ORDER BY sort ASC,create_time ASC
queryWrapper
对象中存储的是查询条件和参数,用于指定数据库查询的条件。queryWrapper
对象充当一个容器,用于保存查询条件,并允许链式地将多个条件组合在一起(category_id = ? AND status = ?)
构建复杂的查询。它不存储实际的查询结果。
IService
中的 list
方法是一个通用的查询方法,用于从数据库中获取符合查询条件的记录列表。
List<Dish> dishList = list(queryWrapper);
表示使用 queryWrapper
作为查询条件,执行查询并返回查询结果的列表。
通过传递一个查询条件对象(如 queryWrapper
),该方法将根据条件查询数据库,并返回符合条件的记录列表。在这个例子中, list(queryWrapper)
将返回一个包含 Dish 对象的列表,这些对象满足 queryWrapper
中指定的查询条件。