データベースの割り当てに取り組んでいますが、問題が発生しました。一度に 3 行を出力する必要があり、3 行の倍数ごとに停止し、続行するか中断するかをユーザーに促します。
これは、Oracle データベースで Java JDBC を使用しています。
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") は、ユーザー入力を求める前にテキストを出力します。
print ステートメントが印刷されないのはなぜですか? クエリを変更して一度に 3 行を選択し、複数のクエリを呼び出す唯一の方法はありますか?