我正在做一个简单的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/