gpt4 book ai didi

java - resultset.next() 循环中的打印语句不打印

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:53:26 25 4
gpt4 key购买 nike

我正在处理数据库分配,但遇到了问题。我们需要一次打印 3 行,在每 3 行的倍数处停止并提示用户继续或中断。

这是将 Java JDBC 与 Oracle 数据库结合使用。

if (rset.next()){
// At this point, there are reviews to show
int rinc = 0;
String seenextreviews = "y";
System.out.println("Rating - Text - Reviewer - RDate");
while(rset.next()){
// Iterate through the result set
System.out.println("Increment: " + rinc);
if(rinc % 3 == 0) {
// Displayed 3 reviews
seenextreviews = "maybe";
while(!seenextreviews.equals("y") && !seenextreviews.equals("n")){
seenextreviews = console.readLine("See next reviews (y/n)? ");
if (!seenextreviews.equals("y") && !seenextreviews.equals("n")){
System.out.println("Invalid input '" + seenextreviews + "'");
}
}
if (seenextreviews.equals("n")) {
System.out.println("Breaking...");
break;
} else {
System.out.println("Continue...");
}
}
System.out.println(rset.getInt("rating") + " - " +
rset.getString("text") + " - " +
rset.getString("reviewer") + " - " +
rset.getString("rdate"));
rinc = rinc + 1;
}
}

对于给定的代码,'if (rset.next())' 中的所有 'System.out.println(values)' 仅 System.out.println("Invalid input '"+ seenextreviews + "'");System.out.println(rset.getInt("rating")...); 打印,而其他所有内容都不打印。

但是,console.readLine("text") 仍然会在询问用户输入之前打印文本。

为什么我的打印报表没有打印出来?将查询更改为一次选择 3 行并调用多个查询的唯一替代方法是什么?

最佳答案

For the given code, all of the 'System.out.println(values)' within 'if (rset.next())' only

来自 ResultSet#next

Moves the cursor froward one row from its current position.

所以,看起来您的查询返回单行,您在 if (rset.next()) 条件下读取它,当转到 while(rset.next( )) 您正在从第 2 行读到最后,但由于您没有第 2 行要读,while-loop 结束。

可能的解决方案:使用标志打印标题:

int rinc = 0;
String seenextreviews = "y";
while(rset.next()) {
//this serves as flag
if (rinc == 0) {
System.out.println("Rating - Text - Reviewer - RDate");
}
//rest of your code logic...
}

关于java - resultset.next() 循环中的打印语句不打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15178512/

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