即使我关闭了连接和语句,我还是会得到错误的[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()));
}
}发布于 2022-05-14 00:36:22
您正在关闭第一个连接(c),但不关闭第二个连接(c2)。
你为什么要建立两种联系?为什么不简单地在第一个连接上创建两个语句,然后在第二个语句之后关闭第一个连接(c)?然后您可以完全避免第二个连接(并且您没有关闭它的事实很可能是您的错误的原因)。
https://stackoverflow.com/questions/72236401
复制相似问题