java程序:在一个方法类传入实体类Class和ResultSet对象,如何将结果集以List对象返回
时间: 2023-06-04 14:05:26 浏览: 102
您好!感谢您对ChitGPT的使用!对于您的问题,我可以为您提供以下代码段,用于将ResultSet对象以List对象返回:
```
public static <T> List<T> populateObjects(Class<T> clazz, ResultSet rs) throws SQLException, InstantiationException, IllegalAccessException, NoSuchMethodException, InvocationTargetException {
List<T> list = new ArrayList<>();
ResultSetMetaData rsmd = rs.getMetaData();
int columnCount = rsmd.getColumnCount();
Map<String, String> columnNameToFieldNameMap = new HashMap<>(columnCount);
for (int i = 1; i <= columnCount; i++) {
columnNameToFieldNameMap.put(rsmd.getColumnName(i), CaseFormat.LOWER_UNDERSCORE.to(CaseFormat.LOWER_CAMEL, rsmd.getColumnName(i)));
}
while (rs.next()) {
T obj = clazz.newInstance();
for (int i = 1; i <= columnCount; i++) {
String columnName = rsmd.getColumnName(i);
Field field = clazz.getDeclaredField(columnNameToFieldNameMap.get(columnName));
field.setAccessible(true);
field.set(obj, rs.getObject(i));
}
list.add(obj);
}
return list;
}
```
如果您需要更详细的解释或是有其他问题需要解答,欢迎随时提问。谢谢!