下面是一个简单的 Java 工具类示例,用于处理 JDBC ResultSet 的结果集。这个示例演示了如何将 ResultSet 中的数据转换为对象列表,并关闭相关资源。请注意,这只是一个基础示例,实际应用中可能需要更多的灵活性和错误处理。
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
public class ResultSetUtil {
// Convert ResultSet to a list of objects
public static <T> List<T> mapResultSetToObjectList(ResultSet resultSet, ResultSetMapper<T> mapper) {
List<T> resultList = new ArrayList<>();
try {
while (resultSet.next()) {
T object = mapper.mapResultSetToObject(resultSet);
resultList.add(object);
}
} catch (SQLException e) {
e.printStackTrace();
}
return resultList;
}
// Close ResultSet
public static void closeResultSet(ResultSet resultSet) {
try {
if (resultSet != null) {
resultSet.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
// Define a functional interface for mapping ResultSet to an object
public interface ResultSetMapper<T> {
T mapResultSetToObject(ResultSet resultSet) throws SQLException;
}
public static void main(String[] args) {
ResultSet resultSet = null;
try {
// Assume 'resultSet' is obtained from a database query
List<Person> personList = ResultSetUtil.mapResultSetToObjectList(resultSet, rs -> {
Person person = new Person();
person.setId(rs.getInt("id"));
person.setName(rs.getString("name"));
person.setAge(rs.getInt("age"));
return person;
});
// Process the list of persons
for (Person person : personList) {
System.out.println(person.getId() + ", " + person.getName() + ", " + person.getAge());
}
} finally {
ResultSetUtil.closeResultSet(resultSet);
}
}
}
在这个示例中,通过定义一个函数式接口 ResultSetMapper
,你可以自定义如何将 ResultSet 中的数据映射到对象。在示例的 main
方法中,我们通过 lambda 表达式创建了一个 ResultSetMapper
实例,将 ResultSet 的数据映射到 Person
对象。
请根据你的需求和数据模型修改代码。在实际应用中,你可以更进一步,添加异常处理、类型转换、字段映射策略等功能。