知识大全 用finally关键字来避免资源漏洞

Posted

篇首语:贫不足羞,可羞是贫而无志。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 用finally关键字来避免资源漏洞相关的知识,希望对你有一定的参考价值。

   现象   在用JDBC访问某个数据库 并读出一个ResultSet数据记录集时 如果记录数太大 则会占用客户端(运行java程序的机器)的大量内存(如果客户端是某个大企业的营业部门的代理点分机 则有可能java程序会占用完全部内存 然后报错) 并且会造成客户端负载过重 运行速度极度缓慢(在sybase数据库中 我曾做过一个测试 选择某个大数据记录 SQL语句运行完需要 分钟 而在java客户端完全显示出来 则需要将近 分钟)      解决方案   给用户提供一个可选择分页显示的选项 如果用户不想分页显示则完全显示 否则分页显示      定义一个分页数全局常量 即每页显示的数据条数     private final static int SKIP = ;     定义一个确定某个分页条数的全局变量 即该显示页的当前显示数据条数     private static int cur = ;     定义一个ResultSet全局变量 以便多次使用    private static java sql Result rs = null;     打开一个数据库连接[/pre]    Class forName( sqlDriver );  java sql Connection conn = DriverManager getConnection( URL (String)userName (String)Passwd)  Statement stmt = conn createStatement();  String searchSql = ;  rs = stmt executeQuery(searchSql);     获取查询结果集数据(一般是在查询按钮的响应事件函数里)       nextButton setEnable(true);  cur = ;  while( cur < SKIP && rs.next() )  cur ++ ;  .....(获取rs中的记录,存入java程序的变量中)      6.显示下一页的结果集数据(一般是在下页按钮的响应事件函数里)    if( rs.getRow() == 0 )    nextButton.setEnable(false);  closeConnection(); --rs的cursor已经到了最后,结果集显示完毕,关闭此次的连接    cur = 0;  if(rs != null && rs.getRow() > )     将上页显示的内容清除  while(cur < SKIP && rs.next() )    cur ++ ;  .....(获取结果集中的记录,存入java程序的变量中)         缺陷:  此方法根据2.0版本的JDBC(具体和JDBC驱动程序的提供商有关)之前的ResultSet类产生,因为ResultSet无法将已经显示的结果集回滚,所以此法只能按照ResultSet类的定义,从左往右、从前往后的浏览数据结果。.WiNgwIT.无法动态显示指定任意前后的结果集数据。 cha138/Article/program/Java/JSP/201311/19282

相关参考

知识大全 Final关键字对JVM类加载器的影响

Final关键字对JVM类加载器的影响  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &

知识大全 今天刚买的笔记本电脑,用360安全卫士查出许多漏洞、蠕虫病毒和恶意程序!请问漏洞要修复吗

今天刚买的笔记本电脑,用360安全卫士查出许多漏洞、蠕虫病毒和恶意程序!请问漏洞要修复吗?病毒呢?按照360卫士把重要的漏洞补丁打上就可以了,再说我们电脑里又没什么重要东西值得骇客偷。第一台笔记本,装

知识大全 处理异常和错误

  if语句能检查错误但必须在运行时try/catch语句能在编译时检查异常  处理异常和错误>finally块的用途  当打开文件操作发生错误虽然捕捉到异常但资源没被释放所以finally块可

近年屡见农民购买假化肥带来不少损失,您知道避免这种无谓损失的

农民要避免假化肥带来的无谓损失,关键是在购买时要学会如何来识别伪劣假化肥。可以从下面几个方面来识别。  从外表包装上鉴别:  (1)检查标志。按国家有关部门规定,化肥包装上必须用汉字注明产品名称、养分

近年屡见农民购买假化肥带来不少损失,您知道避免这种无谓损失的

农民要避免假化肥带来的无谓损失,关键是在购买时要学会如何来识别伪劣假化肥。可以从下面几个方面来识别。  从外表包装上鉴别:  (1)检查标志。按国家有关部门规定,化肥包装上必须用汉字注明产品名称、养分

近年屡见农民购买假化肥带来不少损失,您知道避免这种无谓损失的方法吗?

农民要避免假化肥带来的无谓损失,关键是在购买时要学会如何来识别伪劣假化肥。可以从下面几个方面来识别。  从外表包装上鉴别:  (1)检查标志。按国家有关部门规定,化肥包装上必须用汉字注明产品名称、养分

近年屡见农民购买假化肥带来不少损失,您知道避免这种无谓损失的方法吗?

农民要避免假化肥带来的无谓损失,关键是在购买时要学会如何来识别伪劣假化肥。可以从下面几个方面来识别。  从外表包装上鉴别:  (1)检查标志。按国家有关部门规定,化肥包装上必须用汉字注明产品名称、养分

知识大全 Java中的finalize详解

Java中的finalize详解  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  程序员都了解初始

知识大全 final的注意事项

  设计一个类时往往需要考虑是否将一个方法设为final可能会觉得使用自己的类时执行效率非常重要没有人想覆蓋自己的方法这种想法在某些时候是正确的    但要慎重作出自己的假定通常我们很难预测一个类以后

知识大全 sql server新漏洞和一些突破口

  下面我要谈到一些sqlserver新的bug虽然本人经过长时间的努力当然也有点幸运的成分在内才得以发现不敢一个人独享拿出来请大家鉴别当然很有可能有些高手早已知道了毕竟我接触sqlserver的时间