1.JDBC ResultSetMetaData将数据反射到实体类中
代码:
private <T> List<T> setMetaData(ResultSet rs, Class<T> clazz) throws Exception {
List<T> tList = new ArrayList<T>();
T t = null;
while (rs.next()) {
t = clazz.newInstance();
ResultSetMetaData rsmd = rs.getMetaData();
int count = rsmd.getColumnCount();
for (int i = 1; i <= count; i++) {
String name = rsmd.getColumnName(i);
Field field = clazz.getDeclaredField(name);
field.setAccessible(true);
field.set(t, rs.getObject(name));
}
tList.add(t);
}
return tList;
}
这样可以比利用实体类反射获取到属性名在从JDBC中获取元数据有优势(必须查询所有数据才可以)
利用JDBC元数据反射不需要会根据查询的columnName反射到实体类中