[英]How to use a same resultset twice in Java
我想兩次使用相同的結果集,一次是檢查它是否為空並根據結果執行代碼,然后,使用(resultset.next()
,第二個結果集將總是由於第一個結果而跳過一行組
到目前為止,這是我的代碼:
connection = DriverManager.getConnection(connection);
statement = (Statement) connection.createStatement();
resultset = statement.executeQuery(query);
String id = "0";
String idfromdb;
if(resultset.next() == false){
System.out.println("table is empty")
statement.executeUpdate(" INSERT INTO table VALUES ('value') ");
}
else{
while(resultset.next()){
idfromdb = resultset.getString("value")
if(! idfromdb = id){
System.out.println("no similar data has been found");
}
else{
System.out.println("similar data has been found");
}
}
}
當您調用resultset.next()
,它將獲取一條記錄,因此您需要調用previous()來重置游標
完整代碼:
boolean hasRecord = true;
if(!resultset.next()){// you are missing ) here
System.out.println("table is empty")
statement.executeUpdate(" INSERT INTO table VALUES ('value') ");
hasRecord = false;
}
if(hasRecord){
resultset.previous();//move to the previous record
}
更改為do-while循環:
if(resultset.next() == false{
System.out.println("table is empty")
statement.executeUpdate(" INSERT INTO table VALUES ('value') ");
} else {
do {
idfromdb = resultset.getString("value")
if(! idfromdb = id){
System.out.println("no similar data has been found");
}
else{
System.out.println("similar data has been found");
}
} while(resultset.next());
}
do-while在循環的底部而不是頂部評估其表達式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.