我有以下三个结果集和一个列表。如何在不使用三个 while(rs1.next()) 的情况下迭代三个结果集并将数据返回到列表。
public Optional<List<StudentDetails>> getStudDetails(String id)
{
List<StudentDetails> stud= new ArrayList<StudentDetails>();
ResultSet rs1 = (ResultSet) storedProcedureCall.getObject(4);
ResultSet rs2 = (ResultSet) storedProcedureCall.getObject(5);
ResultSet rs3 = (ResultSet) storedProcedureCall.getObject(6);
}
最佳答案
如果目标是避免为所有 ResultSet
编写相同的代码(3 个循环),您可以创建一个循环遍历 ResultSet
的方法,生成 每行的 StudentDetails
对象并将其添加到列表中。
这是一个例子:
public Optional<List<StudentDetails>> getStudDetails(String id){
List<StudentDetails> stud= new ArrayList<StudentDetails>();
ResultSet rs1 = (ResultSet) storedProcedureCall.getObject(4);
ResultSet rs2 = (ResultSet) storedProcedureCall.getObject(5);
ResultSet rs3 = (ResultSet) storedProcedureCall.getObject(6);
addStudentDetails(stud, rs1);
addStudentDetails(stud, rs2);
addStudentDetails(stud, rs3);
}
private static void addStudentDetails(List<StudentDetails> list, ResultSet rs){
while(rs.next()){
list.add(new StudentDetails(rs.get.....));
}
}
关于java - 从多个结果集中检索数据到单个 java 列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46823901/