代码:
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反射到实体类中
转载请注明原文地址: https://ju.6miu.com/read-965265.html