2015-05-14 4 views
2

В настоящее время я работаю над проектом, основанным на простой базе данных SQL. Мне нужно, чтобы конечный пользователь попросил войти на свой склад, а затем вытащить список грузовиков из базы данных и представить грузовики по одному, чтобы пользователь мог ввести текущий пробег. У меня есть складская работа, работающая нормально, и я также могу получить список грузовиков с входа. Я просто не могу найти способ представить его по одному для ввода текущего пробега. Ниже приведен код, который я до сих пор:Итерация через результаты SQL в Java

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); 
    } 
} 

Я попытался использовать ArrayList объектов, называемых грузовиков и построены объекты из SQL-запроса. Тем не менее, я столкнулся с тем же вопросом, что и сейчас, когда я не могу найти способ представить разные номера грузовиков по одному, чтобы пользователь мог ввести свой текущий пробег.

+0

Тест [Учебник] (https://docs.oracle.com/javase/tutorial/jdbc/basics/retrieving.html) об извлечении результатов из ResultSet. – RealSkeptic

+0

Вам следует создать класс грузовика, представляющий грузовик. Этот класс должен реализовать методы, чтобы получить текущий пробег от пользователя и сохранить это значение обратно в базу данных. Вы просто перебираете ArrayList и, для каждого экземпляра Truck, вызываете необходимые методы для этого. –

+0

Я бы хотел, чтобы текущий пробег хранился в целочисленном или что-то в этом роде, чтобы сделать некоторые проверки перед выполнением обновлений. Таким образом, когда вводится текущий пробег, он будет сравниваться с другим полем для следующего пробега для PM, затем проверяется другое поле, чтобы увидеть, отмечено ли оно да или нет для 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

Смежные вопросы