2017-04-04 29 views
0

我有一個SQLite數據庫並有一個與記錄ID = 2。我能夠登錄,但不能將id_from_table值(類變量)值設置爲表中的值。它總是0,爲什麼會發生這種情況?我在這裏做錯了什麼?我可以登錄!謝謝,謝謝。即使在從表數據檢索,值是0

數據庫; enter image description here

public boolean login(String userid, String userpass) throws SQLException { 
    PreparedStatement preparedStatement = null; 
    ResultSet resultSet = null; 
    String query = "SELECT * FROM user WHERE username = ? AND passkey = ?"; 
    try{ 
     preparedStatement = connection.prepareStatement(query); 
     preparedStatement.setString(1,userid); 
     preparedStatement.setString(2,userpass); 
     resultSet = preparedStatement.executeQuery(); 
     if(resultSet.next()){ 
      id_from_table = resultSet.getInt("id"); //not working-when retrieved in another class it shows 0 
      return true; 
     } 
     else { 
      // System.out.println(resultSet.next()); 
      return false; 
     } 
    } 
    catch (SQLException e){ 
     e.printStackTrace(); 
    } 

    finally { 
     preparedStatement.close(); 
     resultSet.close(); 
    } 
    return false; 

} 
+0

你嘗試過'int id_from_table = resultSet ....'嗎? – etsa

+0

實際上,當它打印在條件它打印正確的價值,但從其他類(在我的情況下loginmodel.id_from_table)檢索時,它是0,不知道爲什麼?它是一個全局變量 – minigeek

+0

@minigeek:所以問題不在這部分代碼中,請提供[mcve]。 – Berger

回答

0

我找到了自己的路。

它檢索值從數據庫中,但因爲我的變量是不是public static我不能沒有創建一個訪問對象(首先我創建對象後所做的那樣)。我用來訪問的類是LoginModel,但它應該是Controller,其中我的登錄方法已寫入。

所以Controller.id_from_table工作。我在Controller中定義了id_from_table,並且在login(username,passkey)方法結束之前分配了值。