现在的位置: 首页 > 综合 > 正文

ResultSet关闭异常

2017年10月26日 ⁄ 综合 ⁄ 共 710字 ⁄ 字号 评论关闭

前几天写一个查询数据库的程序时发现同时使用两个Result会导致第一个ResultSet出现关闭异常,后来找出原因如下:

正常情况下如果使用Statement执行完一个查询,又去执行另一个查询时这时候第一个查询的结果集就会被关闭,也就是说,所有的Statement的查询对应的结果集是一个,如果调用Connection的commit()方法也会关闭结果集。可保持性就是指当ResultSet的结果被提交时,是被关闭还是不被关闭。JDBC2.0和1.0提供的都是提交后ResultSet就会被关闭。不过在JDBC3.0中,我们可以设置ResultSet是否关闭。要完成这样的ResultSet的对象的创建,要使用的Statement的创建要具有三个参数,这个Statement的创建方式也就是,我所说的Statement的第三种创建方式。如下: 

  Statement st=createStatement(int resultsetscrollable,int resultsetupdateable,int resultsetSetHoldability) 
  ResultSet rs = st.excuteQuery(sqlStr); 

前两个参数和两个参数的createStatement方法中的参数是完全相同的,这里只介绍第三个参数: 

  resultSetHoldability //表示在结果集提交后结果集是否打开,取值有两个: 
  ResultSet.HOLD_CURSORS_OVER_COMMIT//:表示修改提交时,不关闭数据库。 
  ResultSet.CLOSE_CURSORS_AT_COMMIT//:表示修改提交时ResultSet关闭。
【上篇】
【下篇】

抱歉!评论已关闭.