`

关于DB2 jdbc连接数据库,ResultSet自动关闭猜想

阅读更多
问题:java使用db2jcc.jar和db2jcc_license_cu.jar驱动连接DB2数据库,在程序中抛如下异常:
com.ibm.db2.jcc.c.SqlException: [ibm][db2][jcc][10120][10898] 操作无效:已关闭 result set。
at com.ibm.db2.jcc.c.wf.mb(wf.java:3193)
at com.ibm.db2.jcc.c.wf.c(wf.java:247)
at com.ibm.db2.jcc.c.wf.next(wf.java:234)

第一次接触DB2,痛苦万分。。。
对上面的异常我表示很不可思议,反复检查代码,发现在抛出该异常之前并为关闭resultset。俗话说内事不决找baidu,外事不决找google,于是,我在2大搜索引擎上折腾许久,没有对口的。
没办法了,只能自力更生了,我猜是不是DB2自动关闭的。
于是写了几行代码测试了一下,如下:
int j = 1;
boolean eof;
while(rs != null){
    eof = rs.next();
    if(eof){
        System.out.println(j);
        j++;
    } else {
        System.out.println("======================== null");
    }
}


运行结果如下:
======================== null
com.ibm.db2.jcc.c.SqlException: [ibm][db2][jcc][10120][10898] 操作无效:已关闭 result set。
at com.ibm.db2.jcc.c.wf.mb(wf.java:3193)
at com.ibm.db2.jcc.c.wf.c(wf.java:247)
at com.ibm.db2.jcc.c.wf.next(wf.java:234)
果然,当rs.next()读出来是null时,DB2将resultSet关闭了,再执行rs.next()就会抛出已关闭异常。。。
当我把数据库连接换成oracle时,当读出来是null时,不关闭resultSet,只会一直打印======================== null

关于DB2自动关闭resultSet只是我的猜测,暂未找到理论依据,我也没有去ibm官网求证(英文伤不起)。

总结:一直觉得自己在解决问题上的能力比较薄弱,碰到问题通常“一查二问三猜”—去网上查相关资料,问身边的朋友,自己写个代码瞎猜,再就没辙了。。。

希望无所不能的大虾们不吝赐教,多谢!
分享到:
评论
1 楼 leton2008 2012-05-15  
这个代码你最好格式化一下
int j = 1; 
boolean eof; 
while(rs != null){ 
    eof = rs.next(); 
    if(eof){ 
        System.out.println(j); 
        j++; 
    } else { 
        System.out.println("======================== null"); 
    } 
} 


对于问题的跟踪要仔细,能简单介绍你剖析这个问题的一些过程要点,用步骤些出来让别人更容易理解。

比如昨天有人问我一个问题:
引用
mysql 某数据,按访问量排序,随机前100条,取10条,,,这个SQL语句咋写?


我的回答是:
引用
你这个问题应该是这样吧?结果集首先是要排序100条,然后从这100条中随机选10条吧? 这个算是一个推荐结果查询吧。

如果是这个思路就应该自己琢磨两步走该怎么具体实现。每一步的做法都有文档或者实例的。


很多人是碰到问题觉得难,是因为他基本很少分解问题。如果将问题分解下,其实里面的小步骤分析起来就更有针对性。

相关推荐

    JDBC连接db2数据库.zip

    在本例中,"JDBC连接db2数据库.zip"是一个压缩包,包含了连接IBM DB2数据库所需的JDBC驱动。 DB2是IBM公司开发的一款关系型数据库管理系统,广泛应用于企业级应用,支持多种操作系统平台,如Windows、Linux、Unix和...

    jdbc连接数据库步骤

    JDBC(Java Database Connectivity)是Java语言中用于连接和操作数据库的应用程序接口。它定义了Java应用程序如何与数据库之间通信,允许用户执行SQL语句并获取结果。对于初学者来说,理解JDBC连接数据库的基本步骤...

    JDBC连接数据库经验总结

    **JDBC连接数据库经验总结** Java Database Connectivity (JDBC) 是Java编程语言中用于与关系数据库交互的标准API。它提供了一种规范,使得Java开发者能够使用标准的Java语句来执行SQL命令,从而实现对数据库的操作...

    Jdbc连接数据库的方法

    综上所述,JDBC连接数据库主要包括加载驱动、建立连接、执行SQL和关闭连接四个步骤。通过封装这些操作在类中,可以方便地在应用程序中复用。在实际开发中,还需要根据具体需求对异常处理、事务管理等方面进行优化和...

    常用的jdbc连接数据库架包jar

    "常用的jdbc连接数据库架包jar"指的是包含不同数据库驱动的Java类库,这些驱动使得Java程序能够通过JDBC API与Oracle、DB2、SQLServer和MySQL等主流数据库建立连接。下面我们将详细探讨这些数据库以及它们对应的JDBC...

    java实例jdbc连接数据库大全.doc

    在Java编程中,Java数据库连接(JDBC)是与各种数据库进行交互的标准API。它允许开发者使用Java语言编写数据库应用程序,而无需关心底层数据库的具体实现。JDBC通过一系列的类和接口来提供这种通用性,使得数据库...

    jdbc连接数据库jdbc连接数据库

    "JDBC 连接数据库" JDBC(Java Database Connectivity)是一种Java API,用于连接数据库,并执行 SQL 语句以访问和操作数据库中的数据。JDBC API 由java.sql包提供,包括了 Connection、Statement、ResultSet 等...

    JDBC连接数据库代码大全

    JDBC(Java Database Connectivity)是Java编程语言中用于与各种数据库进行交互的一种API。它提供了一种标准的方式来访问和操作数据库,使得开发人员无需关心具体的数据库实现细节,就能执行SQL语句并处理结果。JDBC...

    第五章 JDBC连接数据库.pdf

    JDBC(Java Database Connectivity)是一种Java API,用于连接和执行查询数据库。本章主要针对如何使用JDBC连接Oracle数据库,提供了详细步骤说明,适用于教学及实际开发中的应用。JDBC允许Java程序执行SQL语句,...

    通过JDBC通过java连接DB2数据库

    ### 通过JDBC使用Java连接DB2数据库的关键知识点 #### JDBC简介 JDBC(Java Database Connectivity)是一种用于执行SQL语句的Java API,它可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成...

    Java中JDBC连接数据库详解

    Java中JDBC连接数据库详解 Java中JDBC连接数据库详解是指Java程序使用JDBC(Java Database Connectivity)来连接和操作数据库的过程。JDBC是一种Java API,用于连接和操作数据库,它提供了一套标准化的接口,允许...

    JDBC连接DB2数据库需要的jar包

    连接DB2数据库的基本步骤包括:加载驱动、建立连接、创建Statement或PreparedStatement对象、执行SQL语句、处理结果集、关闭资源。例如: ```java import java.sql.*; public class DB2ConnectionExample { ...

    完整java开发中JDBC连接数据库代码和步骤

    ### 完整Java开发中JDBC连接数据库代码和步骤 #### 一、概述 在Java开发过程中,通过Java Database Connectivity (JDBC) 连接数据库是非常常见的一种操作方式。JDBC提供了一组标准的API,使得Java应用程序可以访问...

    PG-java jdbc连接数据库

    本篇文章将深入探讨如何使用JDBC连接PG数据库,以及实现数据的增删改查操作。 首先,我们需要了解JDBC的基本概念。JDBC是Java程序访问数据库的一组接口和类,它允许开发者使用SQL语句来操作数据库。JDBC提供了一个...

    db2 jdbc 通过客户端连接db2

    DB2 JDBC 通过客户端连接DB2是数据库管理中常见的操作,尤其在Java开发环境中。JDBC(Java Database Connectivity)是Java编程语言与各种数据库交互的标准接口。本篇将深入探讨如何利用DB2 JDBC驱动程序建立从Java...

    DB2jdbc-4.23.42.zip

    总的来说,"DB2jdbc-4.23.42.zip" 提供了与DB2数据库交互的必要工具,让Java开发者能够轻松地进行数据操作、事务管理和性能优化。了解并熟练掌握DB2 JDBC驱动的使用,对于任何需要与DB2数据库打交道的Java应用都是至...

    java JDBC连接数据库代码大全

    ### Java JDBC连接数据库代码大全详解 #### 一、JDBC基础概述 JDBC(Java Database Connectivity)是一种标准的Java API,允许Java程序连接并操作各种类型的数据库。它为开发人员提供了一种统一的方式,以便使用...

    JDBC不同数据库连接

    在实际开发过程中,我们经常需要连接到不同的数据库系统(如 Microsoft SQL Server、Oracle、MySQL、Sybase、DB2 和 Access 等),因此掌握如何通过 JDBC 连接到这些不同的数据库是非常重要的。 #### 二、JDBC 连接...

Global site tag (gtag.js) - Google Analytics