2015-05-14 96 views
2

我目前正在研究基於簡單SQL數據庫的項目。我需要做的是讓最終用戶提示進入他們的倉庫,然後從他們的數據庫中拖出一輛卡車列表,並一次給出一輛卡車,以便用戶輸入當前的里程數。我的倉庫輸入工作正常,我也可以從輸入中檢索卡車列表。我無法找到一種方法來一次性顯示當前的里程數據。以下是我目前使用的代碼:在Java中迭代SQL結果

public class PreventativeMaintenance { 

public static void main(String[] args) throws Exception 
{ 
    Scanner kb = new Scanner (System.in); 
    System.out.print("Warehouse? "); 

    Class.forName("com.mysql.jdbc.Driver"); 
    Connection con = (Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", ""); 

    String warehouse = kb.next(); 

    String query = "SELECT * FROM `new_schema`.`trucks` WHERE `warehouse` = '" + warehouse + "'"; 

    Statement st = con.createStatement(); 


    ResultSet rs = st.executeQuery(query); 
    } 
} 

我試圖使用名爲Truck的對象的ArrayList並從SQL Query中構建對象。但是,我遇到了同樣的問題,現在我無法找到一種方法來一次顯示不同的卡車號碼,因此用戶可以輸入當前的里程數。

+0

試試這個[教程](https://docs.oracle.com/javase/tutorial/jdbc/basics/retrieving.html)結果集。 – RealSkeptic

+0

您應該創建一個代表卡車的卡車類。該類應實現從用戶獲取當前里程並將該值保存回數據庫的方法。你只需遍歷ArrayList,並且對於每個Truck實例,調用必要的方法來做到這一點。 –

+0

我想保留當前里程存儲到一個整數或類似的東西做更新之前做一些檢查。因此,當輸入當前里程時,它將與下一個里程的其他字段進行比較,然後檢查另一個字段,以確定PM是否標記爲是或否,如果需要更新。 – dpepper

回答

1

你可以嘗試這樣的事:大約從檢索結果

//once you get resultset rs after executing query 
    while(rs.next()){ 
     String truckName = rs.getString("<name of truck column>"); 
     setTruckMileage(truckName); 
    } 

    private void setTruckMileage(String truckName){ 
     Scanner kb = new Scanner (System.in); 
     System.out.print("Enter mileage for truck " + truckName +" : "); 

     Integer mileage = kb.nextInt(); 

     //save mileage entered by user 
    } 
+0

在閱讀了由RealSkeptic發佈的教程之後,我開始走上類似的道路。如果我仍然卡住,我會很快發佈。 – dpepper

+0

這是我走的一般路線,它解決了我需要做的事情。再次感謝大家的幫助! – dpepper