通过反射将查询条件中空条件过滤掉
  TEZNKK3IfmPf 2023年11月15日 19 0
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;

import java.lang.reflect.Field;

/**
* Created on 2022/4/26.
*
* @author lichuanming
*
* 将查询条件中空条件过滤掉
*/
public class CombineQueryWrapperNotNullConditionUnitl {



public static <T> QueryWrapper<T> selectByNotNullCondition(T t) {

Class<? extends T> aClass = (Class<? extends T>) t.getClass();
QueryWrapper<T> queryWrapper = new QueryWrapper();


Field[] declaredFields = aClass.getDeclaredFields();
for (int i = 0; i < declaredFields.length; i++) {
Field declaredField = declaredFields[i];
declaredField.setAccessible(true);



Object o = null;
try {
o = declaredField.get(t);
} catch (IllegalAccessException e) {
e.printStackTrace();
}

if(o==null || "serialVersionUID".equals(declaredField.getName())){
continue;
}


String underLineName = camelToUnderline(declaredField.getName(), 1);
queryWrapper.eq(underLineName,o);
}

return queryWrapper;
}


public static final char UNDERLINE = '_';

//驼峰转下划线
public static String camelToUnderline(String param, Integer charType) {
if (param == null || "".equals(param.trim())) {
return "";
}
int len = param.length();
StringBuilder sb = new StringBuilder(len);
for (int i = 0; i < len; i++) {
char c = param.charAt(i);
if (Character.isUpperCase(c)) {
sb.append(UNDERLINE);
}
if (charType == 2) {
sb.append(Character.toUpperCase(c)); //统一都转大写
} else {
sb.append(Character.toLowerCase(c)); //统一都转小写
}


}
return sb.toString();
}

//下划线转驼峰
public static String underlineToCamel(String param) {
if (param == null || "".equals(param.trim())) {
return "";
}
int len = param.length();
StringBuilder sb = new StringBuilder(len);
Boolean flag = false; // "_" 后转大写标志,默认字符前面没有"_"
for (int i = 0; i < len; i++) {
char c = param.charAt(i);
if (c == UNDERLINE) {
flag = true;
continue; //标志设置为true,跳过
} else {
if (flag == true) {
//表示当前字符前面是"_" ,当前字符转大写
sb.append(Character.toUpperCase(param.charAt(i)));
flag = false; //重置标识
} else {
sb.append(Character.toLowerCase(param.charAt(i)));
}
}
}
return sb.toString();
}
}

不会,我可以学;落后,我可以追赶;跌倒,我可以站起来!




【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月15日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   2024年03月29日   56   0   0 i++
  TEZNKK3IfmPf   2023年11月15日   33   0   0 idei++
  TEZNKK3IfmPf   2023年11月15日   25   0   0 初始化i++
  TEZNKK3IfmPf   2023年11月15日   21   0   0 搜索i++
  TEZNKK3IfmPf   2024年03月29日   120   0   0 i++排序
TEZNKK3IfmPf