diff --git a/src/main/java/com/nis/util/HiveJDBC.java b/src/main/java/com/nis/util/HiveJDBC.java index b611268..a000f25 100644 --- a/src/main/java/com/nis/util/HiveJDBC.java +++ b/src/main/java/com/nis/util/HiveJDBC.java @@ -135,13 +135,15 @@ public class HiveJDBC { Map filedAndColumnMap = getColumn2FiledMap(entityClass); List listString = new ArrayList(); List listObject = new ArrayList(); - List columnList = null; - if (null != obj && obj.length > 0) { - columnList = new ArrayList(); - for (int i = 0; i < obj.length; i++) { - columnList.add(obj[i].toString().toLowerCase()); - } - } + //不从Object... obj中获取需要date类型的字段了,调用的时候容易漏写,改为反射获取date类型的字段 + List columnList =getDateColumn(entityClass); +// List columnList =null; +// if (null != obj && obj.length > 0) { +// columnList = new ArrayList(); +// for (int i = 0; i < obj.length; i++) { +// columnList.add(obj[i].toString().toLowerCase()); +// } +// } // ResultSet rs = HiveJDBC.query(sql.toString()); ResultSetMetaData metaData = rs.getMetaData(); while (rs.next()) { @@ -186,7 +188,7 @@ public class HiveJDBC { } else { mapList.put("str", listString.subList(startNum, listString.size())); } - + } else { mapList.put("str", new ArrayList()); } @@ -203,6 +205,27 @@ public class HiveJDBC { return mapList; } + /** + * 反射获取类中date类型的字段名称 + * @param type + * @return + * @throws Exception + */ + public static List getDateColumn(Class type) throws Exception { + List columnList = new ArrayList(); + BeanInfo beanInfo = Introspector.getBeanInfo(type); + PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors(); + for (int i = 0; i < propertyDescriptors.length; i++) { + PropertyDescriptor propertyDescriptor = propertyDescriptors[i]; + String name = propertyDescriptor.getName(); + String fieldTypeName = propertyDescriptor.getPropertyType().getName(); + if (fieldTypeName.equals("java.util.Date")) { + columnList.add(name.toLowerCase()); + } + } + return columnList; + } + public static Object map2Obj(Map map, Class type) throws Exception { BeanInfo beanInfo = Introspector.getBeanInfo(type); Object obj = type.newInstance();