Java 如何在循环期间使用已执行的Qry resultset执行查询?
如何在循环时使用上一个执行查询结果执行查询Java 如何在循环期间使用已执行的Qry resultset执行查询?,java,sql,database,oracle,Java,Sql,Database,Oracle,如何在循环时使用上一个执行查询结果执行查询 Resultset rs = con.excuteQuery(Query1.toString); While(rs.next()){ Resultset rs1 = con.excuteQuery(Query2.toString); while(rs1.next()){ } } 一旦执行了第二个查询,则无法执行前一个rs。 例如:第一次查询有2条记录 如果执行了第二个查询,则第一个Qry没有获取第二条记录 请尽快给出解决方案 谢谢。在你的
Resultset rs = con.excuteQuery(Query1.toString);
While(rs.next()){
Resultset rs1 = con.excuteQuery(Query2.toString);
while(rs1.next()){
}
}
一旦执行了第二个查询,则无法执行前一个rs。
例如:第一次查询有2条记录
如果执行了第二个查询,则第一个Qry没有获取第二条记录
请尽快给出解决方案
谢谢。在你的例子中,
con
大概是一个陈述;国家:
默认情况下,每个语句对象只能打开一个ResultSet对象
同时,。因此,如果读取一个ResultSet对象
与另一个的读取交错,每个都必须已生成
通过不同的语句对象。语句中的所有执行方法
如果
开放的存在
所以你需要两个独立的陈述
编辑:我同意@A.B.Cade和其他观点,不过,你应该集中思考,让数据库进行连接,这样你就有了一个结果集。如果您当前正在使用第一个结果集中的数据进行工作,则只需跟踪您以前是否见过该数据,例如,通过跟踪一个或多个列的最后一个值。如注释中所述,如果两个查询相关,则应使用内部联接将它们合并为一个查询。否则,您的选项取决于数据库和/或驱动程序 1) 使用两个不同的连接来执行查询 或: 2) [如果驱动程序允许]使用两个PreparedStatements,而不是直接在连接上执行查询 我建议你养成使用事先准备好的语句的习惯,除非你有很好的理由不这样做。与直接通过连接执行查询相比,它们有各种各样的好处。下面是一篇类似的帖子。就我自己而言,我同意那些认为这个嵌套循环应该出现在查询中的人的观点