我正在从上一个在系统上工作的开发人员那里读取代码,他从未关闭与数据库的任何连接。他仅关闭PreparedStatement
和ResultSet
连接,但不关闭连接。
系统不使用连接池。
有什么理由不密切的一切(Connection
,PreparedStatement
和ResultSet
)?
没有充分的理由,这将导致应用程序非常脆弱。如果存在网络问题或数据库在短时间内没有响应,则数据库连接很容易过时,并且依靠单个现有连接,没有重新启动应用程序就无法恢复。
还有其他坏点。例如,通常会同步连接,因此,如果以此方式构建具有多个并发用户的Web应用程序,则会限制该应用程序的并发性。但是,您的应用程序无法从瞬态问题中恢复就足以使其值得解决。
问题内容: 我一直在对我们的一个宠物项目进行代码审查(通常使用诸如FindBugs之类的工具),并且FindBugs将以下代码标记为错误的(伪代码): 错误是此代码可能不会释放资源。我发现ResultSet和Statement没有关闭,所以我最终将它们关闭: 但是我在许多项目(来自许多公司)中遇到了上述模式,没有人关闭ResultSets或Statements。 关闭连接时,是否关闭了Result
嗨,我只知道这是一个古老的问题,但今天只是好奇。正如我们所知connection.close也会关闭preared语句(如果我错了请纠正我)。但是如果我关闭连接然后关闭preared语句会怎样 我会得到一个空指针异常吗? 有人说这取决于jvm的速度。有时,ps.close()会在conn.close完成其工作之前运行并首先关闭,因此您不会得到null指针。 为了测试它,我修改了代码 但是我没有得到
问题内容: 我使用boto3连接到AWS的代码遇到错误。该错误仅在昨天下午开始,在上一次我没有收到错误和第一次我得到错误之间,我看不到任何变化。 错误是: 在.aws / config中,我有: 这是我所知道的: 在另一台机器上使用相同的AWS凭证和配置,我看不到错误。 在同一台计算机上使用不同的AWS凭证和配置,我确实看到了错误。 我是我们小组中唯一在任何计算机上出现任何凭据问题的人。 我不认为
我正在使用grails 3.3.9构建一个示例hello应用程序。当应用程序被部署时,它工作得很好。当我检查一天左右后,应用程序已经崩溃了。检查日志,我看到一个错误“连接关闭后不允许操作”。看起来mysql数据库连接在某个时候中断了。 下面是我在application.yml中使用的数据库配置 我很欣赏任何关于为什么数据库连接会在一段时间后自动关闭的见解。我该如何预防呢?谢谢你的反馈。
问题内容: 我正在开发游戏,但扫描仪遇到了一个小问题。我收到了一个从未关闭过的资源泄漏扫描程序。 但是我认为我的扫描仪在没有关闭之前就可以正常工作。但是现在不是。有人可以帮我吗? 问题答案: 我假设您正在使用Java 7,因此会收到编译器警告,当您不关闭资源时,通常应在finally块中关闭扫描程序。 甚至更好:使用新的 Try with resource语句 :
问题内容: 由于Google拒绝除已成立公司之外的所有公司访问Google MyBusiness的API密钥,因此我尝试使用seleniumwebdriver自动执行更改我的业务信息的过程。 什么有效? 通过自动执行登录表单登录到Google Mybusiness。 什么不起作用? 登录后,我需要打开编辑工作时间的小模式。我试图自动单击“编辑”按钮,但不幸的是,出现此错误: 我的代码: 堆栈跟踪: