1、这是一个把JDBC查询的结果集封装成实体类的方法
/**
* 将JDBC查询的结果集封装成指定实体类对象的集合
* @param paramList 查询的结果集,这种格式
* @param entityClass 要封装进的实体类
* @param <T>
* @return
*/
public static <T>List<T> getJdbcList(List<List<Column>> paramList,Class<T> entityClass){
//校验集合是否为空,是否有元素
if(null!=paramList && paramList.size()>0){
//先创建返回的结果,用于封装对象
List<T> returnList = new ArrayList<>();
//循环
for (List<Column> columnList:paramList){
//执行
T object = getJdbcOne(columnList, entityClass);
returnList.add(object);
}
return returnList;
}
return null;
}
public static <T> T getJdbcOne(List<Column> columnList, Class<T> entityClass) {
if (null != columnList && columnList.size() > 0) {
try {
//创建该实体类的一个新的对象
T object = entityClass.getConstructor().newInstance();
//遍历
for (Column<String> column : columnList) {
//获取字段名
String columnName = column.getColumnName();
//获取字段的值
String columnValue = column.getVal()==null?null:String.valueOf(column.getVal());
try {
//获取该类有无该字段,如果没有,抛出异常
Field field = entityClass.getDeclaredField(columnName);
//取消访问检查,对于私有字段可以设置值
field.setAccessible(true);
//赋值
field.set(object, columnValue);
}catch (Exception e){
continue;
}
}
return object;
} catch (Exception e) {
e.printStackTrace();
}
}
return null;
}
2、
/**
* 将Storm平台下的MongoDB查询的结果集封装成实体类对象
* @param map
* @param entityClass
* @param <T>
* @return
*/
public static <T> T getMongoOne(Map map, Class<T> entityClass) {
if (null != map && map.size() > 0) {
try {
//处理Mongo查询数据的oid字段
JSONObject jsonId = (JSONObject) map.get("_id");
String id = jsonId.getString("$oid");
map.put("id", id);
map.remove("_id");
//创建新的对象
T object = entityClass.getConstructor().newInstance();
//遍历Map
Set<Map.Entry> entrySet = map.entrySet();
if(!entrySet.isEmpty()){
for (Map.Entry<String, String> entry : entrySet) {
//获取键
String key = entry.getKey();
try {
Field field = entityClass.getDeclaredField(key);
field.setAccessible(true);
String value = entry.getValue();
field.set(object, value);
}catch (Exception e){
continue;
}
}
}
return object;
} catch (Exception e) {
e.printStackTrace();
}
}
return null;
}