Java SQL 更新查询不工作

标签 java mysql javadb

我正在做一个简单的java项目,使用JavaDB和MySQL来介绍数据库的使用。我正在尝试编写一种方法来更新数据库中的游戏分数。

public void setTeamsScore(int matchNumber, int hScore, int vScore) throws SQLException
{
   Statement stmt = connection.createStatement();
   String sqlStatement = "UPDATE Matches " +
                         "SET HomeTeamScore = " + hScore + 
                         " WHERE " +
                         "MatchNumber = " + matchNumber;
   stmt.executeUpdate(sqlStatement);

   sqlStatement = "UPDATE Matches " +
                  "SET VisitorTeamScore = " + vScore +
                  " WHERE " +
                  "MatchNumber = " + matchNumber;
   stmt.executeUpdate(sqlStatement);
}  

我在运行时没有得到任何错误,当我检查更新语句的返回值时,它返回 1(如果我理解正确,这意味着数据库中更新了 1 行)。但是,数据库根本没有更新,并保持与以前相同的值。

起初,我以为自动提交可能不起作用,所以我尝试关闭自动提交并使用 connection.comit() 但这也没有解决问题。

任何指导将不胜感激。

最佳答案

首先,您必须检查自动提交是否设置为 true 或 false 。 如果为 false,则必须在 SQL 执行后提交连接。

int rows = stmt.executeUpdate(sqlStatement);
System.out.println("Rows impacted : " + rows );
stmt.commit();
stmt.close();

关于Java SQL 更新查询不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47117948/

相关文章:

java - Java中如何获取父类的属性?

java - 如何在 Intellij 中仅禁用 xml 的右边距?

java - 不应在返回参数中使用通用通配符类型

mysql - 几个子查询的总和

java - 在 Derby 中自动将 VARCHAR 截断为特定长度

java - 在 Android 项目中创建和使用自定义 JAR

mysql - 我怎样才能获得每个名字的最大值(value)

c# - 如何验证表的MAX值?

java - 从用户获取数据然后将其插入javadb

sql - 如果作者写了不止一篇文章,为什么这个SQL查询将文章的作者名返回NULL?