gpt4 book ai didi

java - 错误 : Before start of result set in Java

转载 作者:行者123 更新时间:2023-12-01 00:01:01 25 4
gpt4 key购买 nike

我知道这是一个愚蠢的问题,但我仍然需要这样做。这是 java 应用程序中的一个基本程序,我想同时使用 3 个查询来打印表格。

(在这种情况下我没有使用任何主键,所以请帮助我解决这个问题而不将我的属性作为主键 - 我知道这不是一个好的做法,但现在我需要完成它。)

我的代码:

    Connection con = null;        
Statement stat1 = null, stat2 = null, stat3 = null;
ResultSet rs1, rs2, rs3;
stat1 = con.createStatement();
stat2 = con.createStatement();
stat3 = con.createStatement();

String str = "\nProduct\tC.P\tS.P.\tStock\tExpenditure\tSales";
info.setText(str);

String s1 = "SELECT type, cp, sp, stock FROM ts_items GROUP BY type ORDER BY type";
String s2 = "SELECT expenditure FROM ts_expenditure GROUP BY type ORDER BY type";
String s3 = "SELECT sales FROM ts_sales GROUP BY type ORDER BY type";
rs1 = stat1.executeQuery(s1);
rs2 = stat2.executeQuery(s2);
rs3 = stat3.executeQuery(s3);

String type;
int cp, sp, stock, expenditure, sales;

while( rs1.next() || rs2.next() || rs3.next() )
{

type = rs1.getString("type");
cp = rs1.getInt("cp");
sp = rs1.getInt("sp");
stock = rs1.getInt("stock");

expenditure = rs2.getInt("expenditure");

sales = rs3.getInt("sales");

info.append("\n" + type + "\t" + cp + "\t" + sp + "\t" + stock + "\t" + expenditure + "\t" + sales);


}

输出:

Runtime Exception: Before start of result set 

最佳答案

问题是:

while( rs1.next() || rs2.next() || rs3.next() )

如果 rs1.next() 返回 truers2.next()rs3.next() 不会因短路而被调用。所以 rs2rs3 都在第一行之前。如果 rs1.next() 返回 false,那么无论如何您都无法读取...

我怀疑你真的想要:

while (rs1.next() && rs2.next() && rs3.next())

毕竟,当所有三个结果集都有更多信息时,您只想继续前进,对吧?

老实说,您不清楚为什么没有进行适当的连接。这对我来说更有意义......那么你就不会尝试在单个连接上使用多个结果集,也不会依赖于完全相同的 type所有不同表中的值。

关于java - 错误 : Before start of result set in Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19015923/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com