java - 更新语句只运行一次。?

标签 java mysql eclipse jdbc

所以我遇到了一个问题,第一个查询的结果只更新一次。

Statement statement = con1.createStatement();
    ResultSet qResult = statement.executeQuery("select e.Grade, e.StudentID, s.StudentID, s.Classification, s.CreditHours, s.GPA"+ " " +
                            "from Enrollment e, Student s" + " " +
                            "where e.StudentID = s.StudentID");

    double grade = 0.00;
    int tCredits = 0;
    float newGpa = 0;
    String nClass = "";
    PreparedStatement statement2;
    int rowCount = 0;
    String sId = "";
    //loop results
    while(qResult.next())
    {
        sId = qResult.getString(2);
        //1 parse grade - convert to double and save to variable
        grade = parseGrade(qResult.getString(1));
        //2 save Tcredit hours to var
        tCredits = qResult.getInt(5);
        //3 calc new GPA = ((gpa * tCred)+ (3 * grade))/(tCred +3)
        newGpa = (float) (((qResult.getDouble(6) * tCredits) + (3 * grade))/(tCredits + 3));
        //4 add 3 to Tcredit hours
        tCredits = tCredits + 3;
        //5 check tCredit hours and update classification
        nClass = getNewClass(tCredits);

        //6 Update Tables!!
        statement = con1.createStatement();
        rowCount += statement.executeUpdate("update Student" + " " +
                              "set Classification=" + "'" + nClass + "'" + ", GPA=" + newGpa +", CreditHours=" + tCredits  + " " +
                              "where StudentID=" + qResult.getString(2));

    }
    System.out.println("rows Changed:::: " + rowCount);
    //statement.close();

}

当我遍历选择查询的结果时,我尝试更新每个结果。 我已经检查过,有多个学生注册了多个类(class),因此学生确实多次返回。

但是,对于注册表中的每个学生,学分只会更新 1(+3)。

请帮忙, 谢谢!

最佳答案

您必须使用Updatable结果集。

关于java - 更新语句只运行一次。?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7701226/

相关文章:

java - 有没有办法在允许其他人通过的同时防止空值被保留?

java - 我不能在数组上使用方法 setter setMarcaCelular

Eclipse 和 JDK 7

java - 用于在 Eclipse 中快速注释/取消注释代码的任何菜单或热键

java - 没有活跃的管理员拥有... - 在 Android 中锁定屏幕

java - 是否可以同时运行加特林和 Selenium 测试

mysql存储过程不写入预期数据

php - Ionic/Angular $http.get 返回预检响应具有无效的 HTTP 状态代码 404

mysql - 已安装 C MySQL gem 时使用基于 Ruby 的 MySQL 适配器?

android - 为什么我必须在 Eclipse 中如此频繁地重置 ADB 才能连接到 Android 设备?