sql查询listmap集合通过反射转实体类
List<Map<String, Object>> catalogHisEntityList = dscCatalogDao.getDscCatalogSyncEntities();
List<ImpInfoModel> modelList = catalogHisEntityList.stream()
.map(mapResult -> (ImpInfoModel) TransBeanUtil.transObjectWithUnderLineMapKey(mapResult,
ImpInfoModel.class)).collect(Collectors.toList());
package com.dtdream.cascade.util.common;
import java.lang.reflect.Field;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
@Slf4j
public class TransBeanUtil {
private static Pattern humpPattern = Pattern.compile("[A-Z]");
public static Object transObject(Map<String, Object> map, Class clazz) {
Object entity = null;
try {
entity = clazz.newInstance();
} catch (Exception e) {
return null;
}
Field[] fields = entity.getClass().getDeclaredFields();
for (Field field : fields) {
String name = field.getName();
String typeName = field.getType().getSimpleName();
field.setAccessible(true);
try {
if ("Integer".equalsIgnoreCase(typeName)) {
Object value = map.get(name);
if (value != null && StringUtils.isNotEmpty(value.toString())) {
field.set(entity, Integer.valueOf(value.toString()));
}
} else if ("Long".equalsIgnoreCase(typeName)) {
Object value = map.get(name);
if (value != null && StringUtils.isNotEmpty(value.toString())) {
field.set(entity, Long.valueOf(value.toString()));
}
} else if ("String".equalsIgnoreCase(typeName)) {
Object value = map.get(name);
if (value != null && StringUtils.isNotEmpty(value.toString())) {
field.set(entity, String.valueOf(value));
}
} else if ("Date".equalsIgnoreCase(typeName)) {
Object value = map.get(name);
if (value != null && StringUtils.isNotEmpty(value.toString())) {
field.set(entity, DXPTime.convertDate(value.toString()));
}
} else if ("Float".equalsIgnoreCase(typeName)) {
Object value = map.get(name);
if (value != null && StringUtils.isNotEmpty(value.toString())) {
field.set(entity, Float.valueOf(value.toString()));
}
}
} catch (Exception e) {
log.info("method [transObject] trans type exception: ", e);
}
}
return entity;
}
public static Object transObjectWithUnderLineMapKey(Map<String, Object> map, Class clazz) {
Object entity = null;
try {
entity = clazz.newInstance();
} catch (Exception e) {
return null;
}
Field[] fields = entity.getClass().getDeclaredFields();
for (Field field : fields) {
String name0 = field.getName();
String name = humpToLine(name0);
String typeName = field.getType().getSimpleName();
field.setAccessible(true);
try {
if ("Integer".equalsIgnoreCase(typeName)) {
Object value = map.get(name);
if (value == null) {
value = map.get(name0);
}
if (value != null && StringUtils.isNotEmpty(value.toString())) {
field.set(entity, Integer.valueOf(value.toString()));
}
} else if ("Long".equalsIgnoreCase(typeName)) {
Object value = map.get(name);
if (value == null) {
value = map.get(name0);
}
if (value != null && StringUtils.isNotEmpty(value.toString())) {
field.set(entity, Long.valueOf(value.toString()));
}
} else if ("String".equalsIgnoreCase(typeName)) {
Object value = map.get(name);
if (value == null) {
value = map.get(name0);
}
if (value != null && StringUtils.isNotEmpty(value.toString())) {
field.set(entity, String.valueOf(value));
}
} else if ("Date".equalsIgnoreCase(typeName)) {
Object value = map.get(name);
if (value == null) {
value = map.get(name0);
}
if (value != null && StringUtils.isNotEmpty(value.toString())) {
field.set(entity, DXPTime.convertDate(value.toString()));
}
} else if ("Float".equalsIgnoreCase(typeName)) {
Object value = map.get(name);
if (value == null) {
value = map.get(name0);
}
if (value != null && StringUtils.isNotEmpty(value.toString())) {
field.set(entity, Float.valueOf(value.toString()));
}
}
} catch (Exception e) {
log.info("method [transObjectWithUnderLineMapKey] trans type exception: ", e);
}
}
return entity;
}
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();
}
}
使用Json格式化工具类
public static void main(String[] args) {
Map<String, String> hashMap = new HashMap<>();
hashMap.put("field1", "value1");
hashMap.put("field2", "value2");
hashMap.put("field3", "value3");
hashMap.put("field4", "value4");
hashMap.put("field5", "value5");
String toJSON = JSONObject.toJSONString(hashMap);
Pojo01 pojo01 = JSONObject.toJavaObject(JSON.parseObject(toJSON), Pojo01.class);
System.out.println(" pojo01 = " + pojo01.toString());
}
```