我想檢查一個條目是否存在於我的表中。我已經使用了以下資源並在mysql workbench中運行代碼以查看我是否運行了錯誤,但事實並非如此。JDBC檢查是否存在條目
檢查的ResultSet填充 - >Is ResultSet Filled
SQL語法 - >SQL
這是當前的代碼我跑
public static Boolean exists(Table t, int userId){
boolean e = false;
if (connection != null){
try {
String SQL = "SELECT EXISTS(SELECT 1 FROM " + t.table + " WHERE id = " + String.valueOf(userId) + ")";
System.out.println(SQL);
stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery(SQL);
if (isFilled(rs))
e = true;
} catch (SQLException l) {
l.printStackTrace();
}
}
return e;
}
public static boolean isFilled(ResultSet rs){
boolean isEmpty = true;
try {
while(rs.next()){
isEmpty = false;
}
} catch (SQLException e) {
e.printStackTrace();
}
return !isEmpty;
}
問題一直存在,返回true,不管我輸入的用戶ID
我不明白的時候我在mysql工作臺上運行這個腳本,它返回一個,所以isfilled應該返回true,因爲它大於0,所以它應該全部檢查問題是如果我使用一個不存在的ID它仍然是真實的,雖然填充應該因爲返回false它沒有填充結果集爲0 –
您正在檢查結果集是否有任何行。你總是有一排。無論是「1」還是「0」。但是'0'與沒有行是不一樣的。我給了你兩個選擇做什麼。 – Kayaman