mybatis-plus 动态指定只查询某些字段
主要目的:处理前端只想查询其中的某些字段, 返回所有数据太多,又不想扩展接口的时候使用1、传入动态字段// 获取逗号分割的需要的字符串String fieldValues = param.getFieldValues();2、拼接语句查询即可LambdaQueryWrapper<CreditPointRuleClass> queryWrapper = new LambdaQueryWr
·
主要目的: 处理前端只想查询其中的某些字段, 返回所有数据太多,又不想扩展接口的时候使用
1、传入动态字段
// 获取逗号分割的需要的字符串
String fieldValues = param.getFieldValues();
2、拼接语句查询即可
LambdaQueryWrapper<CreditPointRuleClass> queryWrapper = new LambdaQueryWrapper<>();
// 只查询某些字段
if (StringUtils.isNotBlank(fieldValues)) {
Predicate<TableFieldInfo> predicate = null;
String[] fieldValuesArray = fieldValues.split(",");
for (String field : fieldValuesArray) {
predicate = predicate == null ? p -> p.getColumn().equals(field) : predicate.or(p -> p.getColumn().equals(field));
}
queryWrapper.select(CreditPointRuleClass.class,predicate);
}
3、优化为工具类
3.1、工具
/**
* mybatis 查询工具
*/
public class MybatisPlusUtil {
/**
* 只返回 指定字段
*
* @author wangsong
* @email 1720696548@qq.com
* @date 2022/4/28 10:15
*/
public static <T> void fieldValues(String fieldValues, LambdaQueryWrapper<T> queryWrapper, Class<T> aClass) {
if (StringUtils.isNotBlank(fieldValues)) {
Predicate<TableFieldInfo> predicate = null;
String[] fieldValuesArray = fieldValues.split(",");
for (String field : fieldValuesArray) {
predicate = predicate == null ? p -> p.getColumn().equals(field) : predicate.or(p -> p.getColumn().equals(field));
}
queryWrapper.select(aClass, predicate);
}
}
}
使用
LambdaQueryWrapper<CreditPointRuleClass> queryWrapper = new LambdaQueryWrapper<>();
MybatisPlusUtil.fieldValues(fieldValues, queryWrapper, CreditPointRuleClass.class);

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)