`
abitlea
  • 浏览: 7972 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

游标的问题

    博客分类:
  • java
SQL 
阅读更多
 
public Collection getResult(String sql) throws Exception, SQLException,
ParameterException, RecordNotFoundException {
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
return DBUtil.resultSet2Collection(rs);
} catch (SQLException sqle) {
throw sqle;
} finally {
try {
rs.close();
pstmt.close();

} catch (Exception e) {
e.printStackTrace();
}
}
}

前一段时间做项目,完成后交付用户测试使用,结果用户反馈系统在使用一段时间就报错,之后就不能使用了。是什么样的问题呢?于是按照用户所说的情况,进行测试结果也没有发现什么问题啊(因为我使用异常统一处理),最后将用户发回的日志仔细观察,才现是由于游标溢出引起的。再仔细察看代码,我的游标关闭了。由于比较忙,此问题就先放下来了。那天写代码 偶然发现上面的代码,终于找到原因了,原来如果在执行sql时候出错,那么系统异常会被捕捉到并抛出throw sqle,最后执行关闭rs与pstmt,不仔细看还真的以为万事大吉,再仔细想:执行sql时候出错rs还能关吗!关闭肯定会引起异常,因为这个时候的rs的值为null ,所以到这一步会跳出并引发Exception 异常,所以pstmt.close()这句就不再执行喽!也就是游标没有关闭,所以接下来会引发游标溢出问题。
分享到:
评论
1 楼 together 2006-11-04  
可以去看看ajoo同学的大作,“你擦了吗”。
http://www.iteye.com/topic/13649

相关推荐

    关于游标问题的解答

    kris -- Thanks for the question regarding "Cursor in SQL", version 10.2.0

    波形图游标功能_获取游标_

    波形图游标功能在许多科学计算和数据分析应用中都是一种非常重要的工具,它允许用户在可视化图形上精确地定位和测量数据点。在LabVIEW(Laboratory Virtual Instrument Engineering Workbench)这样的图形化编程环境...

    约瑟夫问题的游标实现

    约瑟夫问题的游标实现,可以自己设置杀人的个数

    oracle 隐式游标,显示游标,游标循环

    ### Oracle中的游标详解 #### 一、引言 在Oracle数据库中,游标是一种非常重要的机制,它允许用户在程序中对查询结果进行逐行处理。游标分为两种主要类型:**隐式游标**和**显示游标**。此外,还可以利用游标进行...

    LabVIEW 的游标图例

    游标图例用来显示图形中的游标,如图1所示。在图形上用游标可读取绘图区域上某个点的确切值,游标值会显示在游标图例中。  图1 图形缩放方式  图2 游标图例  选择游标图例右键快捷菜单的“创建游标”,在...

    Mysql游标(循环操作)

    ### MySQL游标(循环操作) #### 一、游标简介 在MySQL中,游标是一种数据库对象,主要用于处理存储过程中的结果集。游标允许我们逐行地读取查询结果,这对于需要对每一行数据执行特定操作的情况非常有用。通过...

    使用游标更新数据库

    使用游标更新数据库 使用游标更新数据库是指在游标定位下,修改或删除表中指定的数据行。使用游标对数据进行更新可以提高数据库的性能和效率。 1. 游标更新的基本概念 游标是数据库中的一种数据结构,它可以用来...

    游标和异常处理 游标和异常处理

    游标和异常处理 游标是 SQL 的一个内存工作区,由系统或用户以变量的形式定义。游标的作用就是用于临时存储从数据库中提取的数据块。在某些情况下,需要把数据从存放在磁盘的表中调到计算机内存中进行处理,最后将...

    oracle游标的总结oracle游标的总结

    Oracle 游标概述 Oracle 游标是 Oracle 数据库中的一种重要概念,用于查询数据库,获取记录集合(结果集)的指针。游标可以看作是一个临时表,你可以对其每一行的数据进行任意的操作。本文将对 Oracle 游标的概念、...

    oracle数据库的游标

    但是,动态SQL和动态游标的使用需要谨慎,因为它们可能会引发一些安全问题,比如SQL注入攻击。 总结来说,Oracle数据库中的游标是一个强大的工具,它不仅可以提高数据处理的效率,还可以为复杂的查询和数据操作提供...

    ORACLE 游标使用示例

    需要注意的是,虽然游标提供了很大的灵活性,但过度使用也可能导致性能问题,因为它需要额外的内存和CPU资源。因此,在设计应用程序时,应尽可能优化游标的使用,避免无谓的资源消耗。 在"游标.txt"文件中,可能...

    SQL游标使用金典

    ### SQL游标使用详解 #### 一、游标概述 在深入探讨SQL游标的使用之前,我们先来了解一下什么是游标。游标是数据库管理系统的功能之一,它允许用户逐行处理查询结果集中的数据。通常情况下,当我们执行一个SELECT...

    labview中波形图的游标坐标

    游标是LabVIEW波形图的一个重要功能,它可以帮助用户精确地读取图形上的数据点坐标,进而进行数据分析或调试工作。本篇将详细解释如何在LabVIEW中操作波形图的游标以及实时显示坐标值。 1. **波形图的创建与数据...

    游标卡尺SolidWorks图纸

    游标卡尺是一种精密的测量工具,常用于工程和制造业中进行尺寸的精确测量。在三维建模领域,使用SolidWorks这样的专业软件可以创建出游标卡尺的虚拟模型,以便于设计、模拟和分析其结构与功能。SolidWorks 2016是一...

    获取多个游标的坐标8.2_labview获取游标_

    "获取多个游标的坐标8.2_labview获取游标_"这个主题主要关注如何在LabVIEW中有效地利用游标功能,特别是如何获取并操作多个游标在波形图上的位置信息。以下是对这一主题的详细阐述: 首先,我们需要理解LabVIEW中的...

    游标卡尺的使用.ppt

    游标卡尺的使用 游标卡尺是一种常用的测量工具,广泛应用于机械制造、工程设计、建筑施工等领域。下面我们将详细介绍游标卡尺的构造、使用规则、分类、测量原理和读数方法。 一、游标卡尺的构造 游标卡尺由四个...

    关于游标的说明与使用方法

    ### 关于游标的说明与使用方法 #### 一、什么是游标? 在数据库技术中,**游标**是一种用于检索查询结果集中的数据的方式。它允许用户逐行处理记录集,而不是一次处理整个记录集。这使得游标成为处理大量数据时的...

    游标最简单教程

    ### 游标最简单教程知识点解析 #### 一、游标基本概念 游标是数据库管理系统中的一个重要概念,主要用于处理查询结果集中的数据记录。它允许用户逐行地读取和处理这些记录,这对于需要对每一行数据进行特定操作的...

    Oracle存储过程游标详解

    "Oracle存储过程游标详解" Oracle 存储过程游标是指在 Oracle 数据库中使用游标来实现对结果集的处理和操作。游标可以分为静态游标和REF游标两种类型。静态游标是指结果集已经确实(静态定义)的游标,可以进一步...

Global site tag (gtag.js) - Google Analytics