プログラムでHSQLDBを使用しています。結果セットが空かどうかを確認したい。
_//check if empty first
if(results.next() == false){
System.out.println("empty");
}
//display results
while (results.next()) {
String data = results.getString("first_name");
//name.setText(data);
System.out.println(data);
}
_
上記の方法は正しく機能していません。これによると post カーソルを最初の行に置くには、.first()
または.beforeFirst()
を呼び出す必要がありますが、.first()
および.beforFirst()
はHSQLではサポートされていません。また、connection.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
を追加しようとしましたが、それでも同じ結果が得られます(メッセージが空になり、DBからデータが取得されます!!!)ここで何が間違っているのでしょうか。
私があなたの目的を理解しているなら、あなたはdo while
ループを使うことができます
if (!results.next()) {
System.out.println("empty");
} else {
//display results
do {
String data = results.getString("first_name");
//name.setText(data);
System.out.println(data);
} while (results.next());
}
または、count
をそのように保持することもできます。
int count = 0;
//display results
while (results.next()) {
String data = results.getString("first_name");
//name.setText(data);
System.out.println(data);
count++;
}
if (count < 1) {
// Didn't even read one row
}