当我在程序中不再需要使用ResultSet和Connection的实例时,为什么要在这两个方法上调用.close()方法呢?

什么是不这样做的危险(如果有的话)?

解决方法

这里有两个问题:

数据库连接

持有数据库连接打开会消耗数据库上的资源;它使用内存和数据库配置为具有最大数量的连接,因此您可能会增加连接的可能性.此外,会议的状态也得到维护,所以您可能会遇到麻烦,因为意外地超出预期的范围.

积极的方面,准备好的语句保持编译并准备使用,所以如果您正确地编写和使用sql,则可以通过重新使用准备好的语句获得显着的性能优势.但是,这样做可能会使您的代码复杂化,建议小心谨慎.

另外,获得连接是相当昂贵的,所以这就是connection pools存在的原因.这些使连接断开,但客户端获取连接,使用它们,然后在完成后将其释放回池.

结果集

如果不提交(关闭结果集),保持结果集打开也会保持某些锁定,因此根据您的应用程序,您可以快速击中死锁或严重的生活问题.无论您是否打开连接,始终尽快关闭您的结果集,尽可能多地将资源释放回数据库.

java – 为什么要在ResultSet和Connection实例上调用close()?的更多相关文章

  1. 实例讲解JSP获取ResultSet结果集中的数据的方法

    这篇文章主要介绍了JSP获取ResultSet结果集中数据的方法,文后还介绍一种遍历ResultSet中的数据并转化为表格的方法,需要的朋友可以参考下

  2. 将resultSet转换为数组

    我有以下SQL查询的resultSet:尝试为JDBC模板创建RowMapper我有响应类我需要将“Col3”中的值数组映射到“ListstringFields;”这行不起作用:“ListstringFields=rs.getArray;”请告知谢谢

  3. php – MySQL select random row – rand()performance

    如果是,从数据库中选择随机行的更好方法是什么?

  4. 如何在Java中组合两个ResultSet?

    我有两个具有相同字段的结果集.现在,如何将这两个结果集合并为一个,以便重复的行显示一次.解决方法如果两个ResultSet来自同一个数据库,那么为什么不在检索过程中使用union来组合它们;例如但是,如果这不是一个选项,那么我建议定义一个Row类来表示从ResultSet中提取的Row并实现equals/hashCode以允许比较Row的相等性.然后只需将每个Row添加到Set以删除重复项.

  5. java – 何时使用JDBC调用Connections,Statements和ResultSet上的getWarnings()?

    我想知道的是这个,它可能是特定于驱动程序的,我怎么知道何时应该调用getWarnings()并期望一个非null的响应?换句话说,JDBC对象上是否存在警告,只有在该对象抛出异常后才能使用getWarnings()?)如果我的目标是观察每个警告,我应该在每次JDBC操作之后调用getWarnings()来查找警告“只是为了确定”吗?

  6. java – ResultSet的Oracle JDBC性能

    到目前为止,我一直在使用这样的查询我的数据库工作得非常好:但后来我需要使用rs.first();为了能够多次迭代我的rs.所以我现在用我的问题与两者的表现有关.如果我使用第二种选择,我会失去什么?使用第二个选项会对我到目前为止编写的代码产生任何负面影响吗?

  7. java – 将Resultset转换为String数组

    我需要将我的结果集转换为字符串数组.我正在从数据库中读取电子邮件地址,我需要能够发送它们,如:这是我阅读电子邮件地址的代码:我的输出是:我需要这样:我正在使用Oracle11g.解决方法获得所需的输出:替换这些线通过

  8. java – ResultSet.TYPE_SCROLL_SENSITIVE的行为

    我对TYPE_SCROLL_SENSITIVE类型的ResultSet的行为感到困惑.我对此的理解是:>我执行一个选择查询,返回结果集.我打印出第一行中特定列的值.>然后我执行Thread.sleep(10000),暂停程序10秒.>当程序处于休眠状态时,我手动对数据库中的同一列进行更新(通过sql提示符).>10秒后,我再次打印结果集第一行中相同列的值.在步骤4中,我希望打印的列值与步骤1中打印

  9. angularjs – 如何创建一个可以在Angular中使用的自定义对象类

    我如何使用服务声明自定义ResultSet类,然后如何从其中实例化一个实例?接着编辑在进一步尝试的时候,我发现你甚至不需要使用createNew方法.工作很好,然后你可以调用新的ResultSetClass.注意使用Coffeescript的人Coffeescript将返回您的类实例中的最后一个变量或方法,因此如果使用coffeescript,则必须在类定义的末尾返回此变量或方法如果你不明确地返回,那么你会发现你打电话时那么你将只剩下coffeescript返回的最后一个过滤方法.

  10. java – ResultSet关闭后不允许操作

    好吧,在过去的两天里,他一直试图解决这个问题.这是查询方法.我该如何解决这个错误?解决方法很难从你发布的代码中确定,但我怀疑ResultSet在while循环体内无意中被关闭.这将在下一次迭代开始时触发异常.此外,您需要确保应用程序中没有其他线程可能使用相同的DB连接或stm对象.

随机推荐

  1. 基于EJB技术的商务预订系统的开发

    用EJB结构开发的应用程序是可伸缩的、事务型的、多用户安全的。总的来说,EJB是一个组件事务监控的标准服务器端的组件模型。基于EJB技术的系统结构模型EJB结构是一个服务端组件结构,是一个层次性结构,其结构模型如图1所示。图2:商务预订系统的构架EntityBean是为了现实世界的对象建造的模型,这些对象通常是数据库的一些持久记录。

  2. Java利用POI实现导入导出Excel表格

    这篇文章主要为大家详细介绍了Java利用POI实现导入导出Excel表格,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  3. Mybatis分页插件PageHelper手写实现示例

    这篇文章主要为大家介绍了Mybatis分页插件PageHelper手写实现示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  4. (jsp/html)网页上嵌入播放器(常用播放器代码整理)

    网页上嵌入播放器,只要在HTML上添加以上代码就OK了,下面整理了一些常用的播放器代码,总有一款适合你,感兴趣的朋友可以参考下哈,希望对你有所帮助

  5. Java 阻塞队列BlockingQueue详解

    本文详细介绍了BlockingQueue家庭中的所有成员,包括他们各自的功能以及常见使用场景,通过实例代码介绍了Java 阻塞队列BlockingQueue的相关知识,需要的朋友可以参考下

  6. Java异常Exception详细讲解

    异常就是不正常,比如当我们身体出现了异常我们会根据身体情况选择喝开水、吃药、看病、等 异常处理方法。 java异常处理机制是我们java语言使用异常处理机制为程序提供了错误处理的能力,程序出现的错误,程序可以安全的退出,以保证程序正常的运行等

  7. Java Bean 作用域及它的几种类型介绍

    这篇文章主要介绍了Java Bean作用域及它的几种类型介绍,Spring框架作为一个管理Bean的IoC容器,那么Bean自然是Spring中的重要资源了,那Bean的作用域又是什么,接下来我们一起进入文章详细学习吧

  8. 面试突击之跨域问题的解决方案详解

    跨域问题本质是浏览器的一种保护机制,它的初衷是为了保证用户的安全,防止恶意网站窃取数据。那怎么解决这个问题呢?接下来我们一起来看

  9. Mybatis-Plus接口BaseMapper与Services使用详解

    这篇文章主要为大家介绍了Mybatis-Plus接口BaseMapper与Services使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  10. mybatis-plus雪花算法增强idworker的实现

    今天聊聊在mybatis-plus中引入分布式ID生成框架idworker,进一步增强实现生成分布式唯一ID,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

返回
顶部