java程序:在一个方法类传入Class和ResultSet对象,如何将结果集以List对象返回
时间: 2023-06-04 15:05:23 浏览: 166
可以使用以下代码将ResultSet对象转换为List对象:
```java
public List<Object> resultSetToList(Class<?> clazz, ResultSet resultSet) throws SQLException, InstantiationException, IllegalAccessException, NoSuchMethodException, InvocationTargetException {
List<Object> list = new ArrayList<>();
ResultSetMetaData metaData = resultSet.getMetaData();
int columnCount = metaData.getColumnCount();
while (resultSet.next()) {
Object obj = clazz.newInstance();
for (int i = 1; i <= columnCount; i++) {
String columnName = metaData.getColumnName(i);
Object value = resultSet.getObject(columnName);
// 利用反射将数据注入到Java对象中
String methodName = "set" + columnName.substring(0, 1).toUpperCase() + columnName.substring(1);
Method method = clazz.getDeclaredMethod(methodName, value.getClass());
method.invoke(obj, value);
}
list.add(obj);
}
return list;
}
```
其中,clazz参数表示要转换成的Java对象的Class对象,resultSet参数表示查询结果集。该方法会遍历ResultSet对象中的每一行数据,并利用反射将数据注入到Java对象中,最终将Java对象添加到List中,并返回List对象。注意,这里假设Java对象中的属性名称与ResultSet中的列名相同,若不同则需要进行适当的处理。
阅读全文