queryWrapper.lambda().select中怎么拼接sql
时间: 2024-03-28 15:41:26 浏览: 156
queryWrapper.lambda().select方法可以接受一个Function参数,这个Function参数的输入参数是当前实体类的Class对象,输出参数是一个SelectColumn[]数组,SelectColumn类中包含需要查询的列名和别名等信息。在这个Function中,我们可以使用Lambda表达式来实现动态拼接SQL语句,例如:
```
queryWrapper.lambda().select(clazz -> {
List<SelectColumn> columns = new ArrayList<>();
columns.add(SelectColumn.builder().column("id").alias("userId").build());
if (StringUtils.isNotBlank(name)) {
columns.add(SelectColumn.builder().column("name").alias("userName").build());
}
return columns.toArray(new SelectColumn[0]);
});
```
在上面的代码中,我们通过Lambda表达式动态地创建了一个SelectColumn数组,用于指定需要查询的列名和别名。如果传入的name参数不为空,我们会将name列也加入到查询列表中。最终生成的SQL语句类似于:
```
SELECT id AS userId, name AS userName FROM table_name
```
阅读全文