[SQLITE_BUSY] The database file is locked (database is locked)即使我關閉了連接和陳述句,我也會收到錯誤訊息。不知道還有什么可以嘗試的。
public void getTeams() throws SQLException {
Connection c = DriverManager.getConnection("jdbc:sqlite:leagueDatabase.db");
Statement teamStmt = c.createStatement();
ResultSet teamData = teamStmt.executeQuery("SELECT * FROM TEAMS");
while (teamData.next()) {
teams.add(new Team(teamData.getString("city"), teamData.getString("name")));
}
teamData.close();
teamStmt.close();
c.close();
Connection c2 = DriverManager.getConnection("jdbc:sqlite:leagueDatabase.db");
Statement teamStatsStmt = c2.createStatement();
ResultSet teamStatsData = teamStatsStmt.executeQuery("SELECT * FROM TEAM_STATS");
for (int i = 0; i < teams.size(); i ) {
for (int j = 0; j < players.size(); j ) {
if (players.get(j).getTeam().equalsIgnoreCase(teams.get(i).getName()))
teams.get(i).addPlayer(players.get(j));
}
teams.get(i).setStats(new TeamStats(teamStatsData.getInt("wins"), teamStatsData.getInt("losses"), (int) Math.round(teams.get(i).calcTeamRating()), SEASON, teams.get(i).getName()));
}
}
uj5u.com熱心網友回復:
您正在關閉第一個連接 (c) - 但不是第二個連接 (c2)。
您創建兩個連接是否有原因?為什么不簡單地在第一個連接上創建兩個陳述句,然后在第二個陳述句之后關閉第一個連接 (c)?然后你可以完全避免第二個連接(事實上你沒有關閉它很可能是你的錯誤的原因)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/476313.html
