如何解决个别地,我的 SQL 请求功能正常,但是当一个在另一个之后调用时,它会抛出 SQLTransientConnectionException
我第一次使用 Hikari,突然遇到一个奇怪的问题。我有两个不同的 SQL 请求,它们在第一次调用时正常运行。但是,一旦其中一个被调用,另一个就会抛出这个错误 java.sql.SQLTransientConnectionException: HikariPool-1 - Connection is not available,request timed out after 30012ms
我不确定为什么一个会影响另一个,我在任何其他 SQL 调用中都没有这个问题。这是代码
呼叫 1:
try (final PreparedStatement preparedStatement = SQLiteDataSource.getConnection()
.prepareStatement("SELECT priority FROM priority_table WHERE user_id = ?")) {
preparedStatement.setString(1,String.valueOf(member.getId()));
ResultSet rs = preparedStatement.executeQuery();
if (rs.next()) {
int priority = rs.getInt("priority");
channel.sendMessage("You have `" + priority + "` PriorityPoints").queue();
}
preparedStatement.close();
} catch (SQLException e) {
e.printStackTrace();
channel.sendMessage("Could not connect to the database. Please try again.").queue();
}
呼叫 2:
try (final PreparedStatement preparedStatement = SQLiteDataSource.getConnection()
.prepareStatement("UPDATE priority_table SET priority = ? WHERE user_id = ?")) {
preparedStatement.setInt(1,priorities - 1);
preparedStatement.setString(2,String.valueOf(member.getId()));
preparedStatement.execute();
preparedStatement.close();
l.addPriorityUser(member.getUser());
int newPri = priorities - 1;
channel.sendMessage("You've been added to the waitlist with priority. You now have `" + newPri + "`
PriorityPoints.").queue();
} catch (SQLException e) {
e.printStackTrace();
channel.sendMessage("Something went wrong when connecting to the database. You've been added to the
queue with no priority.").queue();
l.addUser(member.getUser());
}
如果这个问题没有意义或很简单,或者我没有提供足够的信息,我深表歉意。这是我第一次使用 stackoverflow,所以请善待! :)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。