没有合适的资源?快使用搜索试试~ 我知道了~
[] - 2023-11-13 MybatisPlus不好用?帅小伙一气之下写了个MybatisPlusPro.pdf
需积分: 0 0 下载量 124 浏览量
2023-12-11
21:41:32
上传
评论
收藏 468KB PDF 举报
温馨提示
试读
12页
互联网资讯,技术简介,IT、AI技术,人工智能互联网资讯,技术简介,IT、AI技术,人工智能互联网资讯,技术简介,IT、AI技术,人工智能互联网资讯,技术简介,IT、AI技术,人工智能互联网资讯,技术简介,IT、AI技术,人工智能互联网资讯,技术简介,IT、AI技术,人工智能互联网资讯,技术简介,IT、AI技术,人工智能互联网资讯,技术简介,IT、AI技术,人工智能互联网资讯,技术简介,IT、AI技术,人工智能互联网资讯,技术简介,IT、AI技术,人工智能互联网资讯,技术简介,IT、AI技术,人工智能互联网资讯,技术简介,IT、AI技术,人工智能互联网资讯,技术简介,IT、AI技术,人工智能互联网资讯,技术简介,IT、AI技术,人工智能
资源推荐
资源详情
资源评论
MybatisPlus不好用?帅小伙一气之下写了个Mybatis
PlusPro
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.2</version>
</dependency>
第二步,编写util类
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.springframework.util.ObjectUtils;
import org.springframework.util.ReflectionUtils;
import java.beans.IntrospectionException;
import java.beans.PropertyDescriptor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.util.Objects;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* Apprentice系统Util
* @since JDK 1.8.0
*/
public class ApprenticeUtil {
private static Pattern humpPattern = Pattern.compile("[A-Z]");
private static Pattern linePattern = Pattern.compile("_(\\w)");
/**
* 驼峰转下划线
*
* @Param: [str]
* @return: java.lang.String
*/
public static String humpToLine(String str) {
Matcher matcher = humpPattern.matcher(str);
StringBuffer sb = new StringBuffer();
while (matcher.find()) {
matcher.appendReplacement(sb, "_" + matcher.group(0).toLowerCase
());
}
matcher.appendTail(sb);
return sb.toString();
}
/**
* 下划线转驼峰
*
* @Param: [str]
* @return: java.lang.String
*/
public static String lineToHump(String str) {
str = str.toLowerCase();
Matcher matcher = linePattern.matcher(str);
StringBuffer sb = new StringBuffer();
while (matcher.find()) {
matcher.appendReplacement(sb, matcher.group(1).toUpperCase());
}
matcher.appendTail(sb);
return sb.toString();
}
/**
* 获取QueryWrapper
*
* @Param: [entity]
* @return: com.baomidou.mybatisplus.core.conditions.query.QueryWrapper<
E>
*/
public static <E> QueryWrapper<E> getQueryWrapper(E entity) {
Field[] fields = entity.getClass().getDeclaredFields();
QueryWrapper<E> eQueryWrapper = new QueryWrapper<>();
for (int i = 0; i < fields.length; i++) {
Field field = fields[i];
//忽略final字段
if (Modifier.isFinal(field.getModifiers())) {
continue;
}
field.setAccessible(true);
try {
Object obj = field.get(entity);
if (!ObjectUtils.isEmpty(obj)) {
String name = ApprenticeUtil.humpToLine(field.getName())
;
eQueryWrapper.eq(name, obj);
}
} catch (IllegalAccessException e) {
return null;
}
}
return eQueryWrapper;
}
/** 反射获取字段值
* @Param: [entity, value] value 值为 "id" "name" 等
* @return: java.lang.Object
*/
public static <E> Object getValueForClass(E entity,String value) {
Field id = null;
PropertyDescriptor pd = null;
try {
id = entity.getClass().getDeclaredField(value);
pd = new PropertyDescriptor(id.getName(), entity.getClass());
} catch (NoSuchFieldException | IntrospectionException e) {
e.printStackTrace();
}
//获取get方法
Method getMethod = Objects.requireNonNull(pd).getReadMethod();
return ReflectionUtils.invokeMethod(getMethod, entity);
剩余11页未读,继续阅读
资源评论
毕业小助手
- 粉丝: 2023
- 资源: 1712
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功