在Java中迭代SQL结果

在Java中迭代SQL结果,java,sql,sql-server,Java,Sql,Sql Server,我目前正在从事一个基于简单SQL数据库的项目。我需要做的是提示最终用户进入他们的仓库,然后从他们的仓库中提取数据库中的卡车列表,并一次显示一辆卡车,以便用户可以输入当前里程。我的仓库输入工作正常,我也能够从输入中检索卡车列表。我就是找不到一种方法来为当前里程输入一次显示一个。以下是我目前掌握的代码: public class PreventativeMaintenance { public static void main(String[] args) throws Exception {

我目前正在从事一个基于简单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查询中构建对象。但是,我遇到了与现在相同的问题,我无法找到一种方法一次显示一个不同的卡车编号,以便用户可以输入其当前里程数。

您可以尝试以下方法:

    //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
    }
//执行查询后获得结果集rs后
while(rs.next()){
字符串truckName=rs.getString(“”);
SetTruckMilage(truckName);
}
私有void setTruckMileage(字符串truckName){
扫描仪kb=新扫描仪(System.in);
系统输出打印(“输入卡车里程数”+truckName+”:”;
整数里程=kb.nextInt();
//保存用户输入的里程数
}

尝试从ResultSet检索结果。您应该创建一个表示卡车的卡车类。该类应该实现从用户获取当前里程数的方法,并将该值保存回数据库。您只需迭代ArrayList,并为每个Truck实例调用必要的方法即可。我希望将当前里程存储为整数或类似的值,以便在执行更新之前进行一些检查。因此,当输入当前里程时,它将与PM的下一个里程的另一个字段进行比较,然后检查另一个字段,查看它是否标记为PM到期的是或否,并在需要时进行更新。在阅读了Real怀疑论者发布的教程后,我开始走上类似的道路。如果我仍然卡住了,我会很快发帖。这是我走的一般路线,它解决了我需要做的事情。再次感谢大家的帮助!