当前位置: 首页 > 知识库问答 >
问题:

语句中的Close方法是否也会在JDBC中中止DB的请求

夹谷衡
2023-03-14

我想知道,在语句类中调用close方法是否也会中止数据库中的sql查询,类似于如何取消方法?

共有2个答案

申屠健
2023-03-14

Close方法用于释放所使用的资源,这是因为到Derby的连接是应用程序外部的资源,垃圾回收器不会自动关闭它们。注意,close方法会导致Derby中止正在运行的事务,但不会回滚该事务。

您可以在https://docs.oracle.com/javadb/10.8.3.0/devguide/cdevconcepts839085.html中看到详细的解释

东郭良弼
2023-03-14

关闭语句将关闭语句句柄,并应结束和取消为该特定语句句柄分配数据库系统所持有的任何语句资源。

我不确定“abort”是什么意思,但如果您试图在executeexecuteQueryexecuteUpdate的方法调用当前正在运行时关闭语句,则该行为依赖于驱动程序,但可能会等到该方法调用完成后才关闭语句。如果要中止正在执行的语句,应使用statement.cancel()

如果您试图在结果集仍处于打开状态时关闭语句(即executequery已完成,但您尚未读取或显式关闭该结果集),则该结果集将被关闭,并且与该结果集相关联的任何服务器资源(例如,服务器端游标)也将被关闭。

 类似资料:
  • 问题内容: 我对flush和close方法感到非常困惑。在我的代码中,我总是关闭我的对象。但是我想知道,如果我必须在这里使用冲洗方法,在哪里可以使用它? 我将编写一个反复下载4或5个文件的项目。我将编写一个方法(用于下载文件),我的方法将处于循环中并重复下载文件。我的方法将具有这样的代码。 该方法调用还是在关闭之前必须使用冲洗? 请注意,该代码运行良好:成功下载了文件。但是我不确定要使用。 问题答

  • 我正在为我的sqlite日志数据库使用准备好的语句。 我的线程每50ms运行一次,将日志缓冲区中的内容写入数据库。 目前,我正在对每个线程运行一个新的准备好的语句批处理,并在所有数据线写入后关闭它们。 现在我想知道是否最好将准备好的语句保存在内存中,并仅在线程关闭/中断时关闭它? 我之所以进行这种预优化,是因为我希望这个日志线程对主应用程序性能的干扰尽可能小,我可以想象每50秒分配/解析/验证资源

  • 据我所知,每次初始化PreparedStatement时,语句都会缓存在为数据库连接分配的内存中。因此,如果初始化过多的PreparedStatement变量,则存在连接可用内存溢出的风险。 > 是否通过调用实例来释放缓存内存? 是否有两个包含相同的SQL的准备声明创建重复的缓存事件,或者数据库是否足够智能,不会缓存重复的准备声明的新实例? 示例1,此连接会溢出内存吗?: 如果会,那这个呢?:

  • 问题内容: 我经历了一个Java教程,该教程使我可以创建一个文本文件,并在其中写上“ 20 Bruce Wayne”字样。在主类中最后一个调用的方法名为closeFile(),它在创建文本文件后“关闭”该文本文件。 如果我没有真正打开文件,为什么需要“关闭”文件?“打开”是指记事本编辑器(不是我使用的IDE)弹出并带有“ 20 Bruce Wayne”字样。请以外行的方式回答我的问题。 Main.

  • 问题内容: 我正在尝试使用JDBC在Oracle 11g数据库上执行DDL语句。我现在用的是这样做的的类。 以下是执行查询并尝试确定查询结果的代码段: 我不是数据库专家,但是是否存在DDL语句执行失败且不引发的情况?如果没有,则无需捕获execute方法返回的内容。缺少表示DDL语句成功执行。 我正在关注的教程建议对DDL语句使用此方法: 尽管Jdbc文档建议使用来执行DDL语句。两者中哪一个更可

  • 问题内容: 在Python中,以及一般而言,对文件对象的操作是否暗含操作? 问题答案: 是。它使用为您执行此操作的基础功能(源)。